%!PS-Adobe-1.0
%%Creator: HP-UX:rtroff (A.R. Troffer)
%%Title: stdin (ditroff)
%%CreationDate: Sun Oct  6 07:32:53 1991
%%EndComments
% lib/psdit.pro -- prolog for psdit (ditroff) files
% Copyright (c) 1984, 1985 Adobe Systems Incorporated. All Rights Reserved.
% last edit: shore Sat Nov 23 20:28:03 1985
% RCSID: $Header: psdit.pro,v 2.1.1.3 87/07/01 07:14:56 krishnan Exp $

% Changed by Edward Wang (edward@ucbarpa.berkeley.edu) to handle graphics,
% 17 Feb, 87.

% Modified: 15 May 1987 by Scott B. Marovich, Hewlett-Packard Laboratories
%                       to add H-P symbol+logotype character to DITHacks

/$DITroff 140 dict def $DITroff begin
/fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def
/xi {0 72 11 mul translate 72 resolution div dup neg scale 0 0 moveto
  /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def F
  /pagesave save def}def
/PB{save /psv exch def currentpoint translate 
  resolution 72 div dup neg scale 0 0 moveto}def
/PE{psv restore}def
/arctoobig 90 def /arctoosmall .05 def
/m1 matrix def /m2 matrix def /m3 matrix def /oldmat matrix def
/tan{dup sin exch cos div}def
/point{resolution 72 div mul}def
/dround	{transform round exch round exch itransform}def
/xT{/devname exch def}def
/xr{/mh exch def /my exch def /resolution exch def}def
/xp{}def
/xs{docsave restore end}def
/xt{}def
/xf{/fontname exch def /slotno exch def fontnames slotno get fontname eq not
 {fonts slotno fontname findfont put fontnames slotno fontname put}if}def
/xH{/fontheight exch def F}def
/xS{/fontslant exch def F}def
/s{/fontsize exch def /fontheight fontsize def F}def
/f{/fontnum exch def F}def
/F{fontheight 0 le {/fontheight fontsize def}if
   fonts fontnum get fontsize point 0 0 fontheight point neg 0 0 m1 astore
   fontslant 0 ne{1 0 fontslant tan 1 0 0 m2 astore m3 concatmatrix}if
   makefont setfont .04 fontsize point mul 0 dround pop setlinewidth}def
/X{exch currentpoint exch pop moveto show}def
/N{3 1 roll moveto show}def
/Y{exch currentpoint pop exch moveto show}def
/S{show}def
/ditpush{}def/ditpop{}def
/AX{3 -1 roll currentpoint exch pop moveto 0 exch ashow}def
/AN{4 2 roll moveto 0 exch ashow}def
/AY{3 -1 roll currentpoint pop exch moveto 0 exch ashow}def
/AS{0 exch ashow}def
/MX{currentpoint exch pop moveto}def
/MY{currentpoint pop exch moveto}def
/MXY{moveto}def
/cb{pop}def	% action on unknown char -- nothing for now
/n{}def/w{}def
/p{pop showpage pagesave restore /pagesave save def}def
/Dt{/Dlinewidth exch def}def 1 Dt
/Ds{/Ddash exch def}def -1 Ds
/Di{/Dstipple exch def}def 1 Di
/Dsetlinewidth{2 Dlinewidth mul setlinewidth}def
/Dsetdash{Ddash 4 eq{[8 12]}{Ddash 16 eq{[32 36]}
 {Ddash 20 eq{[32 12 8 12]}{[]}ifelse}ifelse}ifelse 0 setdash}def
/Dstroke{gsave Dsetlinewidth Dsetdash 1 setlinecap stroke grestore
 currentpoint newpath moveto}def
/Dl{rlineto Dstroke}def
/arcellipse{/diamv exch def /diamh exch def oldmat currentmatrix pop
 currentpoint translate 1 diamv diamh div scale /rad diamh 2 div def
 currentpoint exch rad add exch rad -180 180 arc oldmat setmatrix}def
/Dc{dup arcellipse Dstroke}def
/De{arcellipse Dstroke}def
/Da{/endv exch def /endh exch def /centerv exch def /centerh exch def
 /cradius centerv centerv mul centerh centerh mul add sqrt def
 /eradius endv endv mul endh endh mul add sqrt def
 /endang endv endh atan def
 /startang centerv neg centerh neg atan def
 /sweep startang endang sub dup 0 lt{360 add}if def
 sweep arctoobig gt
 {/midang startang sweep 2 div sub def /midrad cradius eradius add 2 div def
  /midh midang cos midrad mul def /midv midang sin midrad mul def
  midh neg midv neg endh endv centerh centerv midh midv Da
  Da}
 {sweep arctoosmall ge
  {/controldelt 1 sweep 2 div cos sub 3 sweep 2 div sin mul div 4 mul def
   centerv neg controldelt mul centerh controldelt mul
   endv neg controldelt mul centerh add endh add
   endh controldelt mul centerv add endv add
   centerh endh add centerv endv add rcurveto Dstroke}
  {centerh endh add centerv endv add rlineto Dstroke}
  ifelse}
 ifelse}def
/Dpatterns[
[%cf[widthbits]
[8<0000000000000010>]
[8<0411040040114000>]
[8<0204081020408001>]
[8<0000103810000000>]
[8<6699996666999966>]
[8<0000800100001008>]
[8<81c36666c3810000>]
[8<0f0e0c0800000000>]
[8<0000000000000010>]
[8<0411040040114000>]
[8<0204081020408001>]
[8<0000001038100000>]
[8<6699996666999966>]
[8<0000800100001008>]
[8<81c36666c3810000>]
[8<0f0e0c0800000000>]
[8<0042660000246600>]
[8<0000990000990000>]
[8<0804020180402010>]
[8<2418814242811824>]
[8<6699996666999966>]
[8<8000000008000000>]
[8<00001c3e363e1c00>]
[8<0000000000000000>]
[32<00000040000000c00000004000000040000000e0000000000000000000000000>]
[32<00000000000060000000900000002000000040000000f0000000000000000000>]
[32<000000000000000000e0000000100000006000000010000000e0000000000000>]
[32<00000000000000002000000060000000a0000000f00000002000000000000000>]
[32<0000000e0000000000000000000000000000000f000000080000000e00000001>]
[32<0000090000000600000000000000000000000000000007000000080000000e00>]
[32<00010000000200000004000000040000000000000000000000000000000f0000>]
[32<0900000006000000090000000600000000000000000000000000000006000000>]]
[%ug
[8<0000020000000000>]
[8<0000020000002000>]
[8<0004020000002000>]
[8<0004020000402000>]
[8<0004060000402000>]
[8<0004060000406000>]
[8<0006060000406000>]
[8<0006060000606000>]
[8<00060e0000606000>]
[8<00060e000060e000>]
[8<00070e000060e000>]
[8<00070e000070e000>]
[8<00070e020070e000>]
[8<00070e020070e020>]
[8<04070e020070e020>]
[8<04070e024070e020>]
[8<04070e064070e020>]
[8<04070e064070e060>]
[8<06070e064070e060>]
[8<06070e066070e060>]
[8<06070f066070e060>]
[8<06070f066070f060>]
[8<060f0f066070f060>]
[8<060f0f0660f0f060>]
[8<060f0f0760f0f060>]
[8<060f0f0760f0f070>]
[8<0e0f0f0760f0f070>]
[8<0e0f0f07e0f0f070>]
[8<0e0f0f0fe0f0f070>]
[8<0e0f0f0fe0f0f0f0>]
[8<0f0f0f0fe0f0f0f0>]
[8<0f0f0f0ff0f0f0f0>]
[8<1f0f0f0ff0f0f0f0>]
[8<1f0f0f0ff1f0f0f0>]
[8<1f0f0f8ff1f0f0f0>]
[8<1f0f0f8ff1f0f0f8>]
[8<9f0f0f8ff1f0f0f8>]
[8<9f0f0f8ff9f0f0f8>]
[8<9f0f0f9ff9f0f0f8>]
[8<9f0f0f9ff9f0f0f9>]
[8<9f8f0f9ff9f0f0f9>]
[8<9f8f0f9ff9f8f0f9>]
[8<9f8f1f9ff9f8f0f9>]
[8<9f8f1f9ff9f8f1f9>]
[8<bf8f1f9ff9f8f1f9>]
[8<bf8f1f9ffbf8f1f9>]
[8<bf8f1fdffbf8f1f9>]
[8<bf8f1fdffbf8f1fd>]
[8<ff8f1fdffbf8f1fd>]
[8<ff8f1fdffff8f1fd>]
[8<ff8f1ffffff8f1fd>]
[8<ff8f1ffffff8f1ff>]
[8<ff9f1ffffff8f1ff>]
[8<ff9f1ffffff9f1ff>]
[8<ff9f9ffffff9f1ff>]
[8<ff9f9ffffff9f9ff>]
[8<ffbf9ffffff9f9ff>]
[8<ffbf9ffffffbf9ff>]
[8<ffbfdffffffbf9ff>]
[8<ffbfdffffffbfdff>]
[8<ffffdffffffbfdff>]
[8<ffffdffffffffdff>]
[8<fffffffffffffdff>]
[8<ffffffffffffffff>]]
[%mg
[8<8000000000000000>]
[8<0822080080228000>]
[8<0204081020408001>]
[8<40e0400000000000>]
[8<66999966>]
[8<8001000010080000>]
[8<81c36666c3810000>]
[8<f0e0c08000000000>]
[16<07c00f801f003e007c00f800f001e003c007800f001f003e007c00f801f003e0>]
[16<1f000f8007c003e001f000f8007c003e001f800fc007e003f001f8007c003e00>]
[8<c3c300000000c3c3>]
[16<0040008001000200040008001000200040008000000100020004000800100020>]
[16<0040002000100008000400020001800040002000100008000400020001000080>]
[16<1fc03fe07df0f8f8f07de03fc01f800fc01fe03ff07df8f87df03fe01fc00f80>]
[8<80>]
[8<8040201000000000>]
[8<84cc000048cc0000>]
[8<9900009900000000>]
[8<08040201804020100800020180002010>]
[8<2418814242811824>]
[8<66999966>]
[8<8000000008000000>]
[8<70f8d8f870000000>]
[8<0814224180402010>]
[8<aa00440a11a04400>]
[8<018245aa45820100>]
[8<221c224180808041>]
[8<88000000>]
[8<0855800080550800>]
[8<2844004482440044>]
[8<0810204080412214>]
[8<00>]]]def
/Dfill{
 transform /maxy exch def /maxx exch def
 transform /miny exch def /minx exch def
 minx maxx gt{/minx maxx /maxx minx def def}if
 miny maxy gt{/miny maxy /maxy miny def def}if
 Dpatterns Dstipple 1 sub get exch 1 sub get
 aload pop /stip exch def /stipw exch def /stiph 128 def
 /imatrix[stipw 0 0 stiph 0 0]def
 /tmatrix[stipw 0 0 stiph 0 0]def
 /minx minx stiph idiv stiph mul def
 /miny miny stipw idiv stipw mul def
 gsave eoclip 0 setgray
 miny stiph maxy{
  tmatrix exch 5 exch put
  minx stipw maxx{
   tmatrix exch 4 exch put tmatrix setmatrix
   stipw stiph true imatrix {stip} imagemask
  }for
 }for
 grestore
}def
/Dp{Dfill Dstroke}def
/DP{Dfill currentpoint newpath moveto}def
end
/ditstart{$DITroff begin
 /nfonts 60 def			% NFONTS makedev/ditroff dependent!
 /fonts[nfonts{0}repeat]def
 /fontnames[nfonts{()}repeat]def
/docsave save def
}def

% character outcalls
/oc {/pswid exch def /cc exch def /name exch def
   /ditwid pswid fontsize mul resolution mul 72000 div def
   /ditsiz fontsize resolution mul 72 div def
   ocprocs name known{ocprocs name get exec}{name cb}
   ifelse}def
/fractm [.65 0 0 .6 0 0] def
/fraction
 {/fden exch def /fnum exch def gsave /cf currentfont def
  cf fractm makefont setfont 0 .3 dm 2 copy neg rmoveto
  fnum show rmoveto currentfont cf setfont(\244)show setfont fden show 
  grestore ditwid 0 rmoveto} def
/oce {grestore ditwid 0 rmoveto}def
/dm {ditsiz mul}def
/ocprocs 50 dict def ocprocs begin
(14){(1)(4)fraction}def
(12){(1)(2)fraction}def
(34){(3)(4)fraction}def
(13){(1)(3)fraction}def
(23){(2)(3)fraction}def
(18){(1)(8)fraction}def
(38){(3)(8)fraction}def
(58){(5)(8)fraction}def
(78){(7)(8)fraction}def
(sr){gsave 0 .06 dm rmoveto(\326)show oce}def
(is){gsave 0 .15 dm rmoveto(\362)show oce}def
(->){gsave 0 .02 dm rmoveto(\256)show oce}def
(<-){gsave 0 .02 dm rmoveto(\254)show oce}def
(==){gsave 0 .05 dm rmoveto(\272)show oce}def
end

% an attempt at a PostScript FONT to implement ditroff special chars
% this will enable us to 
%	cache the little buggers
%	generate faster, more compact PS out of psdit
%	confuse everyone (including myself)!
50 dict dup begin
/FontType 3 def
/FontName /DIThacks def
/FontMatrix [.001 0 0 .001 0 0] def
/FontBBox[-260 -1032 10560 1032]def% Big enough for H-P logo
/Encoding 256 array def
0 1 255{Encoding exch /.notdef put}for
Encoding
 dup 8#040/space put %space
 dup 8#110/rc put %right ceil
 dup 8#111/lt put %left  top curl
 dup 8#112/bv put %bold vert
 dup 8#113/lk put %left  mid curl
 dup 8#114/lb put %left  bot curl
 dup 8#115/rt put %right top curl
 dup 8#116/rk put %right mid curl
 dup 8#117/rb put %right bot curl
 dup 8#120/rf put %right floor
 dup 8#121/lf put %left  floor
 dup 8#122/lc put %left  ceil
 dup 8#123/bs put %Bell System (really H-P) symbol and logotype
 dup 8#140/sq put %square
 dup 8#141/bx put %box
 dup 8#142/ci put %circle
 dup 8#143/br put %box rule
 dup 8#144/rn put %root extender
 dup 8#145/vr put %vertical rule
 dup 8#146/ob put %outline bullet
 dup 8#147/bu put %bullet
 dup 8#150/ru put %rule
 dup 8#151/ul put %underline
 pop
/DITfd 100 dict def
/BuildChar{0 begin
 /cc exch def /fd exch def
 /charname fd /Encoding get cc get def
 /charwid fd /Metrics get charname get def
 /charproc fd /CharProcs get charname get def
 charwid 0 fd /FontBBox get aload pop setcachedevice
 2 setlinejoin 40 setlinewidth
 newpath 0 0 moveto gsave charproc grestore
 end}def
/BuildChar load 0 DITfd put
/CharProcs 50 dict def
CharProcs begin
/space{}def
/.notdef{}def
/ru{500 0 rls}def
/rn{0 840 moveto 500 0 rls}def
/vr{0 800 moveto 0 -770 rls}def
/bv{0 800 moveto 0 -1000 rls}def
/br{0 840 moveto 0 -1000 rls}def
/ul{0 -140 moveto 500 0 rls}def
/ob{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath stroke}def
/bu{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath fill}def
/sq{80 0 rmoveto currentpoint dround newpath moveto
    640 0 rlineto 0 640 rlineto -640 0 rlineto closepath stroke}def
/bx{80 0 rmoveto currentpoint dround newpath moveto
    640 0 rlineto 0 640 rlineto -640 0 rlineto closepath fill}def
/ci{500 360 rmoveto currentpoint newpath 333 0 360 arc
    50 setlinewidth stroke}def

/lt{0 -200 moveto 0 550 rlineto currx 800 2cx s4 add exch s4 a4p stroke}def
/lb{0 800 moveto 0 -550 rlineto currx -200 2cx s4 add exch s4 a4p stroke}def
/rt{0 -200 moveto 0 550 rlineto currx 800 2cx s4 sub exch s4 a4p stroke}def
/rb{0 800 moveto 0 -500 rlineto currx -200 2cx s4 sub exch s4 a4p stroke}def
/lk{0 800 moveto 0 300 -300 300 s4 arcto pop pop 1000 sub
    0 300 4 2 roll s4 a4p 0 -200 lineto stroke}def
/rk{0 800 moveto 0 300 s2 300 s4 arcto pop pop 1000 sub
    0 300 4 2 roll s4 a4p 0 -200 lineto stroke}def
/lf{0 800 moveto 0 -1000 rlineto s4 0 rls}def
/rf{0 800 moveto 0 -1000 rlineto s4 neg 0 rls}def
/lc{0 -200 moveto 0 1000 rlineto s4 0 rls}def
/rc{0 -200 moveto 0 1000 rlineto s4 neg 0 rls}def
/bs{440 86 true m1 currentmatrix aload pop pop pop neg 0 43 m1 astore logo imagemask}def
end

/Metrics 50 dict def Metrics begin
/.notdef 0 def
/space 500 def
/ru 500 def
/br 0 def
/lt 416 def
/lb 416 def
/rt 416 def
/rb 416 def
/lk 416 def
/rk 416 def
/rc 416 def
/lc 416 def
/rf 416 def
/lf 416 def
/bv 416 def
/ob 350 def
/bu 350 def
/ci 750 def
/bx 750 def
/sq 750 def
/rn 500 def
/ul 500 def
/vr 0 def
/bs 10560 def % 440 dots x 1200 rendered centipoints/50 digitized dots
end

DITfd begin
/s2 500 def /s4 250 def /s3 333 def
/a4p{arcto pop pop pop pop}def
/2cx{2 copy exch}def
/rls{rlineto stroke}def
/currx{currentpoint pop}def
/dround{transform round exch round exch itransform} def
% Hewlett-Packard Company symbol and logotype (440 x 86 dots, digitized @ 300 dots/in.)
% Rows and columns are ordered for "imagemask" to render as double-height character in
% a 10-point font with 12-point line-spacing, centered on the font base line; this is
% the right size to imitate H-P letterhead stationery.
/HPlogo<
00FFFFFFFFFFFC1FF07FFFFFFFFFFFFFC00000003FC000000FF000000FF001FFFFC000FF00001F83F8000007F83FC0001FE07FFFFFE000
03FFFFFFFFFFFC1FF07FFFFFFFFFFFFFF00000003FC000000FF000000FF007FFFFF000FF00003F83F8000007F83FC0001FE07FFFFFF800
0FFFFFFFFFFFFE0FF83FFFFFFFFFFFFFFC0000003FC0000007F800001FE01FFFFFFC00FF00007F83FC00000FF03FC0001FE07FFFFFFE00
1FFFFFFFFFFFFE0FF83FFFFFFFFFFFFFFE0000003FC0000007F800001FE03FFFFFFE00FF0000FF83FC00000FF03FC0001FE07FFFFFFF00
3FFFFFFFFFFFFE0FF83FFFFFFFFFFFFFFF0000003FC0000003FC00003FE07FFFFFFF00FF0001FF03FE00001FE03FC0001FE07FFFFFFF80
3FFFFFFFFFFFFF07FC03FFFFFFFFFFFFFF0000003FC0000003FC00003FC07FFFFFFF00FF0003FE01FE00001FE03FC0001FE07FFFFFFF80
7FFFFFFFFFFFFE07FC003FFFFFFFFFFFFF8000003FC0000001FE00007FC0FFFFFFFF80FF0007FC00FF00003FE03FC0003FE07FFFFFFFC0
7FFFFFFFFFFFF807FC0007FFFFFFFFFFFF8000003FC0000001FFFFFFFF80FF80007F80FF000FF800FFFFFFFFC03FC0007FC07F80007FC0
FFFFFFFFFFFFE003FE0001FFFFFFFFFFFFC000003FC0000001FFFFFFFF81FF00003FC0FF001FF000FFFFFFFFC03FC000FFC07F80003FE0
FFFFFFFFFFFF8003FE00007FFFFFFFFFFFC000003FFFFFF000FFFFFFFF01FE00003FC0FF003FE0007FFFFFFF803FFFFFFF807F80001FE0
FFFFFFFFFFFE0003FE00001FFFFFFFFFFFC000003FFFFFFC00FFFFFFFF01FE00000000FF007FC0007FFFFFFF803FFFFFFF007F80001FE0
FFFFFFFFFFFC0001FF00000FFFFFFFFFFFC000003FFFFFFF007FFFFFFE01FE00000000FF00FF80003FFFFFFF003FFFFFFC007F80001FE0
FFFFFFFFFFF00001FF000003FFFFFFFFFFC000003FFFFFFF807FFFFFFE01FE00000000FF01FF00003FFFFFFF003FFFFFFE007F80001FE0
FFFFFFFFFFE00001FF000001FFFFFFFFFFC000003FFFFFFFC03FFFFFFC01FE00000000FF03FE00001FFFFFFE003FFFFFFF807F80001FE0
FFFFFFFFFFC00000FF800000FFFFFFFFFFC000003FFFFFFFC03FFFFFFC01FE00000000FFFFFC00001FFFFFFE003FFFFFFFC07F80001FE0
FFFFFFFFFF800000FF8000007FFFFFFFFFC000003FFFFFFFE01FE007F801FE00000000FFFFF800000FF003FC003FFFFFFFE07F80001FE0
FFFFFFFFFF000000FF8000003FFFFFFFFFC000003FC0003FF01FE007F801FE00000000FFFFF000000FF003FC003FC0003FE07F80001FE0
FFFFFFFFFE0000007FC000001FFFFFFFFFC000003FC0001FF00FF00FF801FE00000000FFFFE0000007F807FC003FC0001FF07F80001FE0
FFFFFFFFFC0000007FC000000FFFFFFFFFC000003FC0000FF00FF00FF001FE00000000FFFFE0000007F807F8003FC0000FF07F80001FE0
FFFFFFFFF80000007FC0000007FFFFFFFFC000003FC0000FF00FF00FF001FE00000000FFFFF0000007F807F8003FC0000FF07F80001FE0
FFFFFFFFF80000003FE0000003FFFFFFFFC000003FC0000FF007F81FE001FE00000000FFFFF8000003FC0FF0003FC0000FF07F80001FE0
FFFFFFFFF00000003FE0000003FFFFFFFFC000003FC0000FF007F81FE001FE00000000FFFFFC000003FC0FF0003FC0000FF07F80001FE0
FFFFFFFFE00000003FE0000001FFFFFFFFC000003FC0000FF003F81FC001FE00000000FF03FE000001FC0FF0003FC0000FF07F80001FE0
FFFFFFFFE00000001FF0000000FFFFFFFFC000003FC0000FF003FC3FC001FE00003FC0FF01FF000001FE1FE0003FC0000FF07F80001FE0
FFFFFFFFC00000001FF0000000FFFFFFFFC000003FC0001FF003FC3FC001FF00003FC0FF00FF800001FE1FE0003FC0001FF07F80003FE0
FFFFFFFFC00000001FF00000007FFFFFFFC000003FC0003FF001FC3F8001FF80007FC0FF007FC00000FE1FC0003FC0003FF07F80007FE0
FFFFFFFF800000000FFFFC00007FFFFFFFC000003FFFFFFFE001FE7F8000FFFFFFFF80FF003FE00000FF3FC0003FFFFFFFE07FFFFFFFC0
FFFFFFFF800000000FFFFF00003FFFFFFFC000003FFFFFFFE000FE7F0000FFFFFFFF80FF001FF000007F3F80003FFFFFFFE07FFFFFFFC0
FFFFFFFF003FC1FE0FFFFF80003FFFFFFFC000003FFFFFFFC000FFFF00007FFFFFFF00FF000FF800007FFF80003FFFFFFFC07FFFFFFF80
FFFFFFFF003FE1FF07FFFFC0003FFFFFFFC000003FFFFFFFC0007FFE00007FFFFFFF00FF0007FC00003FFF00003FFFFFFFC07FFFFFFF80
FFFFFFFF003FE1FF07FFFFE0001FFFFFFFC000003FFFFFFF80007FFE00003FFFFFFE00FF0003FE00003FFF00003FFFFFFF807FFFFFFF00
FFFFFFFE003FE1FF07FC3FE0001FFFFFFFC000003FFFFFFF00003FFC00001FFFFFFC00FF0001FF00001FFE00003FFFFFFF007FFFFFFE00
FFFFFFFE001FF0FF83FE1FF0001FFFFFFFC000003FFFFFFC00003FF0000007FFFFF000FF0000FF80001FF800003FFFFFFC007FFFFFF800
FFFFFFFE001FF0FF83FE1FF0000FFFFFFFC000003FFFFFF000001FC0000001FFFFC000FF00007FC0000FF000003FFFFFF0007FFFFFE000
FFFFFFFC001FF0FF83FE1FF0000FFFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000
FFFFFFFC000FF87FC1FF0FF8000FFFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000
FFFFFFFC000FF87FC1FF0FF8000FFFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000
FFFFFFFC000FF87FC1FF0FF80007FFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000
FFFFFFF80007FC3FE0FF87FC0007FFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000
FFFFFFF80007FC3FE0FF87FC0007FFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000
FFFFFFF80007FC3FE0FF87FC0007FFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000
FFFFFFF80003FE1FF07FC3FE0007FFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000
FFFFFFF80003FE1FF07FC3FE0007FFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000
FFFFFFF80003FE1FF07FC3FE0007FFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000
FFFFFFF80001FF0FF83FE1FF0007FFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000
FFFFFFF80001FF0FF83FE1FF0007FFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000
FFFFFFF80001FF0FF83FE1FF0007FFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000
FFFFFFF80000FF87FC1FF0FF800FFFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000
FFFFFFFC0000FF87FC1FF0FF800FFFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000
FFFFFFFC0000FF87FC1FF0FF800FFFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000
FFFFFFFC00007FC3FE0FF87FC00FFFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000
FFFFFFFC00007FC3FE0FF87FC01FFFFFFFC000000000000000000000000000000000000000000000000000000000000000000000000000
FFFFFFFE00007FC3FE0FF87FC01FFFFFFFC000003FC00007F800FFFFFFF8000FF80007FC0001FFFFFE01FFFFFFF0000FF0000001FE0000
FFFFFFFE00003FE1FF07FC3FE01FFFFFFFC000003FC00007F803FFFFFFF8003FFC001FFE0007FFFFFE07FFFFFFF0000FF0000001FE0000
FFFFFFFE00003FE1FF07FC3FE03FFFFFFFC000003FC00007F807FFFFFFF8007FFC003FFE000FFFFFFE0FFFFFFFF0000FF0000001FE0000
FFFFFFFF00003FFFFF07FFFFE03FFFFFFFC000003FC00007F807FFFFFFF8007FFC003FFE000FFFFFFE0FFFFFFFF0000FF0000001FE0000
FFFFFFFF00001FFFFE03FFFFC03FFFFFFFC000003FC00007F80FFFFFFFF8007FFC003FFE001FFFFFFE1FFFFFFFF0000FF0000001FE0000
FFFFFFFF00001FFFFE03FFFFC07FFFFFFFC000003FC00007F80FFFFFFFF800FFFE007FFF001FFFFFFE1FFFFFFFF0000FF0000001FE0000
FFFFFFFF80001FFFFC03FFFF807FFFFFFFC000003FC00007F80FFFFFFFF800FFFE007FFF001FFFFFFE1FFFFFFFF0000FF0000001FE0000
FFFFFFFF80000FFFF001FFFE00FFFFFFFFC000003FC00007F80FFFFFFFF800FFFE007FFF001FFFFFFE1FFFFFFFF0000FF0000001FE0000
FFFFFFFFC0000FF80000000000FFFFFFFFC000003FC00007F80FF000000001FFFE007FFF801FE000001FE0000000000FF0000001FE0000
FFFFFFFFC0000FF80000000001FFFFFFFFC000003FC00007F80FF000000001FEFF00FF7F801FE000001FE0000000000FF0000001FE0000
FFFFFFFFE00007FC0000000003FFFFFFFFC000003FC00007F80FF000000001FEFF00FF7F801FE000001FE0000000000FF0000001FE0000
FFFFFFFFE00007FC0000000003FFFFFFFFC000003FC00007F80FF000000001FEFF00FF7F801FE000001FE0000000000FF0000001FE0000
FFFFFFFFF00007FC0000000007FFFFFFFFC000003FC00007F80FF000000003FEFF00FF7FC01FE000001FE0000000000FF0000001FE0000
FFFFFFFFF80003FE000000000FFFFFFFFFC000003FC00007F80FF000000003FCFF81FF3FC01FE000001FE0000000000FF0000001FE0000
FFFFFFFFF80003FE000000001FFFFFFFFFC000003FFFFFFFF80FFFFFFF0003FC7F81FE3FC01FE000001FFFFFFE00000FF0000001FE0000
FFFFFFFFFC0003FE000000003FFFFFFFFFC000003FFFFFFFF80FFFFFFF0003FC7F81FE3FC01FE000001FFFFFFE00000FF0000001FE0000
FFFFFFFFFE0001FF000000007FFFFFFFFFC000003FFFFFFFF80FFFFFFF0007FC7F81FE3FE01FE000001FFFFFFE00000FF0000001FE0000
FFFFFFFFFF0001FF00000000FFFFFFFFFFC000003FFFFFFFF80FFFFFFF0007F87FC3FE1FE01FE000001FFFFFFE00000FF0000001FE0000
FFFFFFFFFF8001FF00000001FFFFFFFFFFC000003FFFFFFFF80FFFFFFF0007F83FC3FC1FE01FE000001FFFFFFE00000FF0000001FE0000
FFFFFFFFFFC000FF80000003FFFFFFFFFFC000003FFFFFFFF80FFFFFFF0007F83FC3FC1FE01FE000001FFFFFFE00000FF0000001FE0000
FFFFFFFFFFE000FF8000000FFFFFFFFFFFC000003FFFFFFFF80FFFFFFF000FF83FC3FC1FF01FE000001FFFFFFE00000FF0000001FE0000
FFFFFFFFFFF000FF8000001FFFFFFFFFFFC000003FC00007F80FF00000000FF03FE7FC0FF01FE000001FE0000000000FF0000001FE0000
FFFFFFFFFFFC007FC000007FFFFFFFFFFFC000003FC00007F80FF00000000FF01FE7F80FF01FE000001FE0000000000FF0000001FE0000
FFFFFFFFFFFE007FC00001FFFFFFFFFFFFC000003FC00007F80FF00000000FF01FE7F80FF01FE000001FE0000000000FF0000001FE0000
FFFFFFFFFFFF807FC00007FFFFFFFFFFFFC000003FC00007F80FF00000001FF01FE7F80FF81FE000001FE0000000000FF0000001FE0000
FFFFFFFFFFFFE03FE0003FFFFFFFFFFFFFC000003FC00007F80FF00000001FE00FFFF007F81FE000001FE0000000000FF0000001FE0000
7FFFFFFFFFFFF83FE001FFFFFFFFFFFFFF8000003FC00007F80FFFFFFFF01FE00FFFF007F81FE000001FFFFFFFE07FFFFFFE0FFFFFFFC0
7FFFFFFFFFFFF83FE00FFFFFFFFFFFFFFF8000003FC00007F80FFFFFFFF01FE00FFFF007F81FE000001FFFFFFFE07FFFFFFE0FFFFFFFC0
3FFFFFFFFFFFFC1FF07FFFFFFFFFFFFFFF0000003FC00007F80FFFFFFFF03FE00FFFF007FC1FE000001FFFFFFFE07FFFFFFE0FFFFFFFC0
3FFFFFFFFFFFFC1FF07FFFFFFFFFFFFFFF0000003FC00007F80FFFFFFFF03FC007FFE003FC1FE000001FFFFFFFE07FFFFFFE0FFFFFFFC0
1FFFFFFFFFFFFC1FF07FFFFFFFFFFFFFFE0000003FC00007F807FFFFFFF03FC007FFE003FC1FE000000FFFFFFFE07FFFFFFE0FFFFFFFC0
0FFFFFFFFFFFFE0FF83FFFFFFFFFFFFFFC0000003FC00007F807FFFFFFF03FC007FFE003FC1FE000000FFFFFFFE07FFFFFFE0FFFFFFFC0
03FFFFFFFFFFFE0FF83FFFFFFFFFFFFFF00000003FC00007F803FFFFFFF03FC007FFE003FC1FE0000007FFFFFFE07FFFFFFE0FFFFFFFC0
00FFFFFFFFFFFE0FF83FFFFFFFFFFFFFC00000003FC00007F800FFFFFFF03F8003FFC001FC1FE0000001FFFFFFE07FFFFFFE0FFFFFFFC0
> def
/logo{0}def
/logo load 0 HPlogo put
end
end
/DIThacks exch definefont pop
ditstart
(psc)xT
576 1 1 xr
1(Times-Roman)xf 1 f
2(Times-Italic)xf 2 f
3(Times-Bold)xf 3 f
4(Times-BoldItalic)xf 4 f
5(Helvetica)xf 5 f
6(Helvetica-Oblique)xf 6 f
7(Helvetica-Bold)xf 7 f
8(Courier)xf 8 f
9(Symbol)xf 9 f
10(DIThacks)xf 10 f
10 s
1 f
xi
%%EndProlog

%%Page: 0 1
10 s 0 xH 0 xS 1 f
3 f
12 s
897 984(The)N
1081(WINTERP)X
1563(Widget)X
1886(INTERPreter)X
2476(\320)X
2596(An)X
2742(application)X
3225(prototyping)X
1430 1104(and)N
1608(extension)X
2016(environment)X
2563(for)X
2710(OSF/Motif.)X
2 f
10 s
1654 1296(Niels)N
1838(P.)X
1927(Mayer)X
2157(\(mayer@hplabs.hp.com\))X
1 f
1821 1440(Hewlett-Packard)N
2381(Laboratories)X
1629 1536(Human-Computer)N
2232(Interaction)X
2600(Department)X
1963 1632(1501)N
2143(Page)X
2319(Mill)X
2476(Road)X
1863 1728(Palo)N
2025(Alto,)X
2207(CA.)X
2358(94304-1126)X
2224 1824(USA)N
2 f
2115 2208(ABSTRACT)N
864 2428(Winterp)N
1 f
1164(is)X
1259(an)X
1377(interactive,)X
1778(language-based)X
2320 0.2596(user-interface)AX
2806(and)X
2965(application-construction)X
864 2524(environment)N
1305(enabling)X
1617(rapid)X
1818(prototyping)X
2227(of)X
2329(applications)X
2751(with)X
2928(graphical)X
3262(user)X
3431(interfaces)X
864 2620(based)N
1070(on)X
1173(the)X
1294(OSF/Motif)X
1667(UI)X
1776(Toolkit.)X
2 f
2055(Winterp)X
1 f
2337(also)X
2490(serves)X
2715(as)X
2806(a)X
2866(customization)X
3339(environment)X
864 2716(for)N
993(delivered)X
1327(applications)X
1748(by)X
1862(providing)X
2207(a)X
2277(real)X
2432(programming)X
2902(language)X
3226(as)X
3327(an)X
3437(extension)X
864 2812(language.)N
1211(Many)X
1435(existing)X
1725 0.2596(user-interface)AX
2205(languages)X
2563(only)X
2742(have)X
2931(the)X
3066(expressive)X
3443(power)X
3682(to)X
864 2908(describe)N
1160(static)X
1356(layout)X
1583(of)X
1677(user)X
1838(interface)X
2147(forms;)X
2383(by)X
2490(using)X
2690(a)X
2753(high-level)X
3105(language)X
3422(for)X
3543(exten-)X
864 3004(sions)N
1052(and)X
1192(prototyping,)X
2 f
1609(Winterp)X
1 f
1891(also)X
2044(handles)X
2313(the)X
2435(dynamic)X
2735(aspects)X
2991(of)X
3082(UI)X
3191(presentation,)X
3628(e.g.)X
864 3100(the)N
991(use)X
1127(of)X
1223(direct)X
1435(manipulation,)X
1906(browsers,)X
2245(and)X
2390(dialog.)X
2 f
2659(Winterp)X
1 f
2945(makes)X
3178(rapid)X
3371(prototyping)X
864 3196(possible)N
1147(because)X
1423(its)X
1519(language)X
1830(is)X
1904(based)X
2108(on)X
2209(an)X
2306(interpreter,)X
2682(thereby)X
2944(enabling)X
3241(interactive)X
3601(con-)X
864 3292(struction)N
1184(of)X
1291(application)X
1687(functionality)X
2136(and)X
2292(giving)X
2536(immediate)X
2914(feedback)X
3245(on)X
3365(incremental)X
864 3388(changes.)N
2 f
864 3512(Winterp)N
1 f
1122('s)X
1218(language)X
1546(is)X
1637(based)X
1858(on)X
1976(David)X
2210(Betz's)X
2453(public)X
2692(domain)X
2 f
2971(Xlisp)X
1 f
3174(interpreter)X
3548(which)X
864 3608(features)N
1142(a)X
1201(subset)X
1424(of)X
1514(Common)X
1834(Lisp's)X
2057(functionality.)X
2509(The)X
2657(language)X
2969(is)X
3044(extensible,)X
3411(permitting)X
864 3704(new)N
1021(Lisp)X
1186(primitives)X
1533(to)X
1619(be)X
1719(added)X
1935(in)X
2021(the)X
2143(C)X
2220(language)X
2534(and)X
2674(allowing)X
2978(hybrid)X
3211(implementations)X
864 3800(constructed)N
1288(from)X
1498(interpreted)X
1899(Lisp)X
2094(and)X
2263(compiled)X
2614(C.)X
2740(Hybrid)X
3020(implementation)X
3575(gives)X
2 f
864 3896(Winterp)N
1 f
1122(-based)X
1354(applications)X
1763(the)X
1883(successful)X
2235(extension)X
2564(and)X
2702(rapid-prototyping)X
3289(capabilities)X
3677(of)X
864 3992(Lisp-based)N
1244(environments,)X
1728(while)X
1934(delivering)X
2286(the)X
2411(multiprocessing)X
2949(performance)X
3383(of)X
3477(C)X
3557(appli-)X
864 4088(cations)N
1111(running)X
1380(on)X
1480(personal)X
2 f
1772(Unix)X
1 f
1948(workstations.)X
576 4472(October)N
855(6,)X
935(1991)X

1 p
%%Page: 1 2
10 s 0 xH 0 xS 1 f
3 f
720 864(1.)N
820(Introduction)X
2 f
720 988(Winterp)N
1 f
8 s
978 963(1)N
10 s
1033 988(is)N
1110(a)X
3 f
1170(W)X
1 f
(idget)S
8 s
963(2)Y
3 f
10 s
1466 988(Interp)N
1 f
1684(reter,)X
1876(an)X
1976(application)X
2356(development)X
2794(environment)X
3223(enabling)X
3523(rapid)X
3712(prototyping)X
4109(of)X
720 1084(graphical)N
1045 0.2321(user-interfaces)AX
1544(\(UI\))X
1708(through)X
1982(the)X
2105(interactive)X
2469(programmatic)X
2944(manipulation)X
3391(of)X
3483(user)X
3642(interface)X
3949(objects)X
720 1180(and)N
860(their)X
1031(attached)X
1324(actions.)X
1596(The)X
1746(interpreter,)X
2126(based)X
2334(on)X
2439(David)X
2660(Betz's)X
2 f
2890(Xlisp)X
1 f
3079([Betz89],)X
3405(provides)X
3706(an)X
3807(interface)X
4114(to)X
720 1276(the)N
847(X11)X
1014(toolkit)X
1251(Intrinsics)X
1579(\(Xt\),)X
1763(the)X
1891(OSF/Motif)X
8 s
2241 1251(3)N
10 s
2303 1276(widget)N
2551(set)X
2670([OSF90])X
2980([Young90],)X
3382(primitives)X
3736(for)X
3860(collecting)X
720 1372(data)N
879(from)X
2 f
1060(Unix)X
1 f
8 s
1216 1347(4)N
10 s
1273 1372(processes,)N
1626(and)X
1767(facilities)X
2068(for)X
2187(interacting)X
2555(with)X
2722(other)X
2 f
2912(Unix)X
1 f
3093(processes.)X
3467(These)X
3685(features)X
3966(enable)X
2 f
720 1468(Winterp)N
1 f
1017(to)X
1118(support)X
1397(rapid)X
1601(prototyping)X
2013(of)X
2119(applications)X
2545(using)X
2756(multi-window)X
3247(graphical)X
3584 0.2321(user-interfaces)AX
4096(by)X
720 1564(allowing)N
1020(the)X
1138(user)X
1292(to)X
1374(interactively)X
1795(change)X
2043(both)X
2205(the)X
2323 0.3750(appearance)AX
2706(and)X
2842(functionality.)X
720 1688(In)N
816(addition)X
1107(to)X
1198(prototyping)X
1600(applications)X
2016(and)X
2162(experimenting)X
2655(with)X
2827(UI)X
2942(layout,)X
2 f
3192(Winterp)X
1 f
3480(may)X
3648(be)X
3754(embedded)X
4114(in)X
720 1784(applications)N
1130(requiring)X
1447(an)X
1546(extension)X
1876(language)X
2189(for)X
2306(customization)X
2778(or)X
2867(systems)X
3142(integration.)X
3531(Traditional)X
3909(X)X
3989(appli-)X
720 1880(cations)N
973(based)X
1182(on)X
1288(the)X
1412(Xtoolkit)X
1704(allow)X
1908(users)X
2100(to)X
2189(alter)X
2359(X)X
2444(resources)X
2775(to)X
2864(tailor)X
3060(application)X
3443(UI)X
3555(parameters)X
3935(such)X
4109(as)X
720 1976(fonts,)N
923(colors,)X
1162(window)X
1443(sizes,)X
1642(etc.)X
1799(Motif's)X
2062(User)X
2237(Interface)X
2547(Language)X
2887(\()X
2 f
2914(UIL)X
1 f
3043(\))X
3093([OSF90])X
3396([Bourne90])X
3789(extends)X
4056(that)X
720 2072(level)N
898(of)X
987(customization)X
1458(by)X
1560(allowing)X
1862(the)X
1982(layout)X
2204(of)X
2293(the)X
2413(application's)X
2849(UI)X
2956(widgets)X
3227(to)X
3311(be)X
3409(tailored.)X
3696(As)X
3807(a)X
3866(language,)X
2 f
720 2168(UIL)N
1 f
870(has)X
998(the)X
1117(expressive)X
1477(power)X
1699(to)X
1782(describe)X
2071(the)X
2190(layout)X
2411(of)X
2499(static)X
2689(UI)X
2794(forms,)X
3021(but)X
3143(has)X
3270(none)X
3446(of)X
3533(the)X
3651(control)X
3898(\257ow)X
4060(and)X
720 2264(data)N
875(handling)X
1176(constructs)X
1523(associated)X
1875(with)X
2039(real)X
2182(programming)X
2640(languages.)X
3023(A)X
3103(programming)X
3561(language)X
3873(is)X
3948(needed)X
720 2360(to)N
828(support)X
1114(the)X
1258(full)X
1415(range)X
1640(of)X
1753(requirements)X
2218(needed)X
2492(by)X
2618(User)X
2815(Interface)X
3147(Management)X
3611(Systems)X
3922(\(UIMS\))X
720 2456([Myers89];)N
1103(to)X
1187(describe)X
1477(dynamic,)X
1795(data-driven)X
2183(UI)X
2290(forms,)X
2519(and)X
2657(to)X
2741(model)X
2963(user/application)X
3498(dialog.)X
2 f
3761(Winterp)X
1 f
4042(pro-)X
720 2552(vides)N
916(such)X
1090(an)X
1193(embedded)X
1550(programming)X
2012(language)X
2328(allowing)X
2634(tailoring)X
2931(of)X
3024(the)X
3148(UI's)X
3317(static)X
3512(and)X
3654(dynamic)X
3956(layout,)X
720 2648(UI-to-application)N
1297(dialog,)X
1537(and)X
1673(application)X
2049(functionality.)X
2 f
720 2772(Winterp)N
1 f
998(is)X
1072(thus)X
1226(an)X
1323(interactive)X
1683(``language)X
2048(based'')X
2306 0.2596(user-interface)AX
2770(development)X
3205(environment)X
3631(\(UIDE\).)X
2 f
3918(Winterp)X
1 f
720 2868(is)N
800(not)X
929(a)X
992(UIMS)X
1219(\320)X
1326(it)X
1397(provides)X
1700(UI)X
1812(primitives)X
2163(and)X
2306(a)X
2368(high-level)X
2719(language)X
3035(to)X
3123(support)X
3389(a)X
3451(wide)X
3633(variety)X
3882(of)X
3975(UI-to-)X
720 2964(application)N
1104(partitionings)X
8 s
1508 2939(5)N
10 s
1568 2964(that)N
1716(are)X
1843(characteristic)X
2301(of)X
2397(the)X
2524(UIMS)X
2753(approach.)X
2 f
3097(Winterp)X
1 f
3384(is)X
3466(designed)X
3780(to)X
3871(allow)X
4078(the)X
720 3060(programmer)N
1138(to)X
2 f
1221(evolve)X
1 f
1448(a)X
1505(suitable)X
1775(UIMS)X
1996(model)X
2216(that)X
2356(is)X
2429(appropriate)X
2815(for)X
2929(extending)X
3265(and)X
3401(customizing)X
3812(a)X
3868(particular)X
720 3156(application.)N
2 f
1137(Winterp)X
1 f
1416(is)X
1490(also)X
1641(designed)X
1948(to)X
2032(support)X
2294(direct)X
2499(manipulation)X
2943(UI)X
3050(building.)X
3378(The)X
3525(current)X
3775(version)X
4033(con-)X
720 3252(tains)N
891(a)X
947(useful)X
1163(primitive)X
1476(for)X
1590(``direct)X
1847(manipulation)X
2289(programming'')X
2799(with)X
2961(widget-objects.)X
720 3376(An)N
841(environment)X
1270(similar)X
1516(to)X
2 f
1602(Winterp)X
1 f
1860('s)X
1942(already)X
2203(exists)X
2409(in)X
2495(the)X
2 f
2617(GNU)X
2810(Emacs)X
1 f
3048([Stallman87])X
3490(text)X
3634(editor)X
3845(\320)X
3949(in)X
4035(fact,)X
2 f
720 3472(Winterp)N
1 f
1003(is)X
1081(strongly)X
1368(in\257uenced)X
1727(by)X
2 f
1832(GNU)X
2026(Emacs)X
1 f
2240(')X
2292(successful)X
2647(design.)X
2900(In)X
2 f
2991(GNU)X
3184(Emacs)X
1 f
3398(,)X
3442(a)X
3502(mini-Lisp)X
3841(interpreter)X
720 3568(is)N
797(used)X
968(to)X
1054(extend)X
1293(the)X
1416(editor)X
1628(to)X
1715(provide)X
1985(text-browser)X
2416(style)X
2592(interfaces)X
2930(to)X
3017(a)X
3078(number)X
3348(of)X
2 f
3440(Unix)X
1 f
3621(applications)X
4033(\(e.g.)X
720 3664(e-mail)N
963(user)X
1135(agents,)X
1398(directory)X
1725(browsers,)X
2072(debuggers,)X
2459(etc\).)X
2637(Whereas)X
2 f
2956(Emacs-Lisp)X
1 f
3371(enables)X
3649(programmers)X
4114(to)X
720 3760(create)N
933(new)X
1087(applications)X
1494(by)X
1594(tying)X
1778(together)X
2061(C-implemented)X
2579(primitives)X
2923(that)X
3063(operate)X
3321(on)X
3422(\256rst-class)X
3750(types)X
3940(provid-)X
720 3856(ing)N
846(textual)X
1088(interfaces)X
1425(\(buffers,)X
1724(windows\),)X
2 f
2084(Winterp-Lisp)X
1 f
2530(ties)X
2665(together)X
2951(operations)X
3308(on)X
3411(graphical)X
3733 0.2596(user-interface)AX
720 3952(objects)N
967(implemented)X
1405(by)X
1505(the)X
1623(Motif)X
1825(widgets.)X
2114(Both)X
2289(application)X
2665(construction)X
3081(environments)X
3537(achieve)X
3804(the)X
3923(\257exibil-)X
720 4048(ity,)N
845(expressiveness,)X
1363(and)X
1500(rapid-prototyping)X
2085(capabilities)X
2470(common)X
2770(for)X
2884(systems)X
3157(implemented)X
3595(in)X
3677(Lisp,)X
3859(while)X
4057(still)X
720 4144(attaining)N
1020(the)X
1138(speed)X
1341(of)X
1428(execution)X
1760(and)X
1896(\(relatively\))X
2273(small)X
2466(size)X
2611(associated)X
2961(with)X
3123(C-implemented)X
3641(applications.)X
2 f
720 4268(Winterp)N
1 f
1006(was)X
1159(initially)X
1435(made)X
1637(public)X
1866(on)X
1975(the)X
2102(MIT)X
2278(X)X
2365(Consortium's)X
2829(X11r4)X
3063(``contrib'')X
3427(distribution;)X
3846(up-to-date)X
720 4364(versions)N
1022(are)X
1156(available)X
1481(via)X
1614(anonymous)X
2018(ftp)X
2142(from)X
2333(a)X
2404(number)X
2683(of)X
2784(Internet)X
3068(sites)X
3244(including)X
3580(export.lcs.mit.edu.)X
2 f
720 4460(Winterp)N
1 f
1000(is)X
1075(quite)X
1257(robust)X
1479(and)X
1617(bug-free,)X
1932(it)X
1998(is)X
2073(in)X
2157(active)X
2371(use)X
2500(by)X
2602(a)X
2660(number)X
2927(of)X
3016(research)X
3307(projects)X
3583(at)X
3663(HP)X
3787(Labs,)X
3985(and)X
4123(is)X
720 4556(also)N
874(being)X
1077(used)X
1249(by)X
1354(companies)X
1722(and)X
1863(universities)X
2257(worldwide.)X
2 f
2645(Winterp)X
1 f
2928(was)X
3078(designed)X
3388(to)X
3475(be)X
3576(portable)X
3864(\320)X
3969(it)X
4038(runs)X
720 4652(on)N
829 0.1726(``standards-oriented'')AX
2 f
1559(Unix)X
1 f
1744(platforms)X
2080(without)X
2353(porting.)X
2633(A)X
2720(number)X
2994(of)X
3090(improvements)X
3577(have)X
3758(already)X
4024(been)X
720 4748(contributed)N
1108(by)X
2 f
1211(Winterp)X
1 f
1469('s)X
1549(user)X
1705(group)X
1914(since)X
2 f
2101(Winterp)X
1 f
2359('s)X
2439(initial)X
2647(public)X
2869(release;)X
3137(submitted)X
3474(improvements)X
3954(will)X
4100(be)X
720 4844(included)N
1016(in)X
1098(publicly)X
1380(available)X
1690(updates)X
1955(of)X
2 f
2042(Winterp)X
1 f
2300(.)X
8 s
10 f
720 5034(hhhhhhhhhhhhhhhhhh)N
6 s
1 f
800 5109(1)N
2 f
8 s
856 5128(Winterp)N
1 f
1078(is)X
1137(pronounced)X
1454(WIN-TERP,)X
1791(not)X
1889(WINTER-P.)X
6 s
800 5203(2)N
8 s
856 5222(A)N
920(Widget)X
1126(is)X
1187(a)X
1233(graphical)X
1488(object)X
1662(that)X
1776(can)X
1882(be)X
1960(manipulated)X
2294(by)X
2376(mouse)X
2561(or)X
2632(keyboard)X
2887(input:)X
3056(examples)X
3316(of)X
3388(OSF/Motif)X
3689(widgets)X
720 5302(include)N
924(scrollbars,)X
1204(pushbuttons,)X
1546(menus,)X
1745(text)X
1857(editors,)X
2063(etc.)X
6 s
800 5377(3)N
8 s
856 5396(Motif)N
1018(is)X
1077(a)X
1121(trademark)X
1395(of)X
1464(the)X
1558(Open)X
1712(Software)X
1958(Foundation.)X
6 s
800 5471(4)N
2 f
8 s
856 5490(Unix)N
1 f
996(is)X
1055(a)X
1099(trademark)X
1373(of)X
1442(American)X
1709(Telephone)X
1994(and)X
2102(Telegraph,)X
2392(Bell)X
2515(Laboratories.)X
6 s
800 5565(5)N
8 s
856 5584(Examples)N
1136(of)X
1217(such)X
1362(UI-to-application)X
1833(partitioning)X
2160(that)X
2284(can)X
2400(be)X
2488(implemented)X
2850(in)X
2 f
2928(Winterp)X
1 f
3162(include)X
3379(Smalltalk's)X
3700(Model-)X
720 5664(View-Controller)N
1158(paradigm,)X
1431(state)X
1564(transition)X
1822(machines,)X
2095(event)X
2249(grammars,)X
2536(etc.)X
10 s
2418 6144(1)N

2 p
%%Page: 2 3
10 s 0 xH 0 xS 1 f
3 f
720 672(2.)N
820(Background)X
720 864(2.1.)N
880(Design)X
1131(Constraints)X
2 f
720 988(Winterp)N
1 f
1011(was)X
1169(created)X
1435(as)X
1535(the)X
1666(platform)X
1975(on)X
2088(top)X
2223(of)X
2323(which)X
2553(the)X
2685(``Collaborative)X
3209(Interaction)X
3591(Tools'')X
3861(project)X
4118(at)X
720 1084(Hewlett-Packard)N
1292(Laboratories)X
1730(is)X
1815(developing)X
2 f
2203(Strudel)X
1 f
2466([Shepherd90],)X
2955(an)X
3062(extensible)X
3418(electronic)X
3766(conversation)X
720 1180(toolkit)N
956(enabling)X
1260(computer)X
1591(supported)X
1935(cooperative)X
2338(work.)X
2551(The)X
2704(design)X
2941(of)X
2 f
3036(Strudel)X
1 f
3295(has)X
3430(resulted)X
3713(in)X
3804(strong)X
4033(con-)X
720 1276(straints)N
993(on)X
2 f
1115(Winterp)X
1 f
1373(:)X
1437(for)X
1573(development,)X
2049(we)X
2185(required)X
2494(an)X
2611(environment)X
3057(supporting)X
3440(rapid)X
3646(prototyping)X
4060(and)X
720 1372(exploratory)N
1113(programming;)X
1594(for)X
1712(delivery)X
1999(to)X
2085(end-users,)X
2 f
2437(Strudel)X
1 f
2692(had)X
2832(to)X
2918(allow)X
3120(extensive)X
3447(customization)X
3920(in)X
4006(order)X
720 1468(to)N
817(\256t)X
918(in)X
1015(to)X
1112(a)X
1183(particular)X
1526(group's)X
1806(computer-based)X
2354(work)X
2553(environment;)X
3014(\256nally,)X
3272(to)X
3368(allow)X
3580(us)X
3685(to)X
3781(validate)X
4069(our)X
720 1564(groupware)N
1084(design,)X
1333(the)X
1451(platform)X
1747(must)X
1922(be)X
2018(acceptable)X
2378(to)X
2461(``early)X
2697(adopters'')X
3044(wanting)X
3323(to)X
3406(use)X
2 f
3534(Strudel)X
1 f
3786(in)X
3869(real)X
4011(work)X
720 1660(situations.)N
1098(Unlike)X
1348(traditional)X
1709(software,)X
2038(groupware)X
2413(cannot)X
2658(be)X
2765(evaluated)X
3104(by)X
3215(individual)X
3570(beta-testers)X
3967(\320)X
4078(the)X
720 1756(power)N
942(of)X
1030(groupware)X
1395(comes)X
1621(from)X
1798(having)X
2037(a)X
2094(number)X
2360(of)X
2448(people)X
2683(using)X
2877(it)X
2942(to)X
3025(work)X
3211(together.)X
3536(In)X
3625(order)X
3817(to)X
3901(gain)X
4061(this)X
720 1852(wide)N
898(experimental)X
1339(user)X
1495(base,)X
1680(we)X
1796(found)X
2005(it)X
2071(necessary)X
2406(to)X
2489(place)X
2680(additional)X
3021(constraints)X
3389(on)X
3490(the)X
3609(platform:)X
3928(it)X
3993(needs)X
720 1948(to)N
804(be)X
902(freely)X
1112(distributable,)X
1554(easy)X
1719(to)X
1803(install,)X
2040(and)X
2179(it)X
2246(must)X
2424(have)X
2599(good)X
2782(performance)X
3212(when)X
3409(running)X
3681(alongside)X
4011(other)X
720 2044(applications)N
1128(on)X
1229(a)X
1286(standard)X
2 f
1579(Unix)X
1 f
1756(workstation.)X
2175(In)X
2263(this)X
2399(paper,)X
2619(we)X
2734(discuss)X
2986(the)X
3105(design)X
3335(of)X
2 f
3423(Winterp)X
1 f
3702(with)X
3865(such)X
4033(con-)X
720 2140(straints)N
977(in)X
1065(mind,)X
1275(pointing)X
1567(out)X
1695(the)X
1819(advantages)X
2202(of)X
2 f
2295(Winterp)X
1 f
2579(as)X
2672(a)X
2734(general)X
2997(platform)X
3299(for)X
3420(application)X
3803(prototyping)X
720 2236(and)N
856(delivery.)X
3 f
720 2428(2.2.)N
880(Strudel)X
1153(\320)X
1253(A)X
1331(Customizable)X
1818(Application)X
2237(Based)X
2461(on)X
2565(Winterp)X
2 f
720 2552(Strudel)N
1 f
977(is)X
1056(a)X
1118(generic)X
1381(framework)X
1760(for)X
1880(interlinking)X
2280(group)X
2494(e-mail)X
2726(conversations)X
3194(and)X
3337(group)X
3551(or)X
3645(individual)X
3996(tasks.)X
720 2648(Strudel)N
984(consists)X
1270(of)X
2 f
1370(Winterp)X
1 f
1628('s)X
1718(interpreter)X
2085(and)X
2233(user)X
2399(interface)X
2713(primitives,)X
3089(combined)X
3437(with)X
3611(primitives)X
3967(imple-)X
720 2744(menting)N
1017(a)X
1089(distributed)X
1467(hypertext-like)X
1953(system)X
2211(using)X
2420(replicated)X
2773(e-mail)X
3014(messages)X
3353(as)X
3456(nodes,)X
3699(and)X
3851(high-level)X
720 2840(operators)N
1043(that)X
1187(will)X
1335(allow)X
1537(the)X
1659(nodes)X
1870(to)X
1956(be)X
2056(viewed-by)X
2419(and)X
2559(linked-to)X
2872(a)X
2931(variety)X
3177(of)X
3267(browsers)X
3580(\(e.g.)X
3766(conversation)X
720 2936(presenters,)N
1089(task)X
1241(and)X
1380(to-do)X
1572(lists,)X
1743(calendars\).)X
2 f
2137(Strudel)X
1 f
2368('s)X
2449(\257exible)X
2712(architecture)X
3115(makes)X
3343(it)X
3410(akin)X
3571(to)X
3656(a)X
3715(``)X
2 f
3769(GNU)X
3962(Emacs)X
1 f
720 3032(for)N
837(groupware'')X
1258(\320)X
1361(the)X
1482(specialized)X
1862(primitives)X
2209(permit)X
2441(the)X
2562(system)X
2807(to)X
2891(be)X
2989(customized)X
3376(to)X
3460(support)X
3722(special)X
3967(modes)X
720 3128(of)N
811(communication)X
1333(for)X
1451(particular)X
1783(workgroup)X
2159(environments)X
2619(much)X
2821(in)X
2907(the)X
3029(same)X
3219(way)X
3378(that)X
2 f
3523(GNU)X
3717(Emacs)X
1 f
3956(Lisp)X
4123(is)X
720 3224(used)N
887(to)X
969(customize)X
1314(the)X
1432(editor)X
1639(to)X
1721(support)X
1981(special)X
2224(editing)X
2466(modes)X
2695(for)X
2809(particular)X
3137(programming)X
3593(environments.)X
720 3348(Users)N
933(will)X
1087(be)X
1193(able)X
1357(to)X
1449(choose)X
1702(from)X
1888(a)X
1954(library)X
2199(of)X
2297(e-mail)X
2533(forms)X
2751(that)X
2902(are)X
3032(designed)X
3348(to)X
3441(track)X
3633(speci\256c)X
3909(types)X
4109(of)X
720 3444(conversations)N
1189(\320)X
1297(scheduling)X
1672(meetings)X
1989(and)X
2133(resources,)X
2485(software)X
2789(defect)X
3013(tracking,)X
3323(group)X
3537(design)X
3773(deliberation,)X
720 3540(etc.)N
878(Workgroups)X
1304(can)X
1441(extend)X
1680(the)X
1803(library)X
2042(of)X
2134(forms)X
2346(to)X
2433(help)X
2596(capture)X
2858(and)X
2999(manage)X
3274(recurrent)X
3590(conversations)X
4056(that)X
720 3636(are)N
844(not)X
971(covered)X
1251(by)X
2 f
1356(Strudel)X
1 f
1587('s)X
1669(standard)X
1965(forms)X
2176(library.)X
2434(The)X
2583(kinds)X
2780(of)X
2871(interface)X
3177(customizations)X
3681(can)X
3817(range)X
4020(from)X
720 3732(adding)N
962(new)X
1120(menu)X
1322(entries)X
1560(for)X
1679(often-used)X
2043(functions)X
2366(to)X
2453(designing)X
2789(new)X
2948(e-mail)X
3178(forms)X
3390(and)X
3531(associated)X
3886(browsers)X
720 3828(for)N
839(their)X
1011(data.)X
1210(We)X
1347(are)X
1472(working)X
1765(closely)X
2018(with)X
2186(a)X
2248(few)X
2395(HP)X
2523(entities)X
2780(to)X
2868(provide)X
2 f
3139(Winterp)X
1 f
3397(-Lisp)X
3592(``scripts'')X
8 s
3909 3803(6)N
10 s
3967 3828(imple-)N
720 3924(menting)N
1011(speci\256c)X
1285(scenarios)X
1613(involving)X
1948(conversations)X
2418(arising)X
2664(in)X
2754(the)X
2880(domain)X
3148(of)X
3243(team)X
3427(software)X
3732(and)X
3876(hardware)X
720 4020(production:)N
1127(group)X
1352(design)X
1599(deliberation,)X
2040(software)X
2355(maintenance,)X
2819(defect)X
3054(tracking,)X
3375(etc.)X
3527(See)X
3681(Figure)X
3928(1)X
4007(for)X
4140(a)X
720 4116(snapshot)N
1020(of)X
1107(the)X
2 f
1225(Strudel)X
1 f
1476(prototype;)X
1825(for)X
1939(further)X
2178(information)X
2576(on)X
2 f
2676(Strudel)X
1 f
2907(,)X
2947(see)X
3070([Shepherd90].)X
720 4240(Research)N
1040(related)X
1284(to)X
2 f
1371(Strudel)X
1 f
1627(includes)X
1919(speech)X
2163(act)X
2282(and)X
2423(dialog)X
2648(theory)X
2879([Searle76])X
3240([Reichman85],)X
3745(commitment-)X
720 4336(based)N
931(software)X
1236(frameworks)X
1648([Fikes82])X
1983([Winograd86],)X
2 f
2486(The)X
2634(Coordinator)X
1 f
8 s
3033 4311(7)N
10 s
3094 4336(and)N
3239(the)X
3366(language/action)X
3903(perspec-)X
720 4432(tive)N
871([Fikes82])X
1209([Winograd87],)X
1715(e-mail)X
1951(message)X
2254(\256ltering)X
2538([Rose86])X
2863([Borenstein88])X
3375(semi-structured)X
3904(message)X
720 4528(systems)N
1024([Malone86],)X
1474(the)X
1623(Object-Lens)X
2072([Lai88],)X
2385(conversation)X
2847(management)X
3309([Comer86])X
3713([Dollimore89])X
720 4624([Sulonen90])N
1143([Kaplan90],)X
1556(of\256ce)X
1766(procedure)X
2115(and)X
2258(coordination)X
2690(models)X
2948([Holt81],)X
3271(collaborative)X
3717(hypertext)X
4047(sys-)X
720 4720(tems)N
891([Trigg86],)X
1243(and)X
1379(Issue-Based)X
1787(Information)X
2190(Systems)X
2476([Conk87].)X
3 f
720 4912(3.)N
820(Interpreting)X
1263(User)X
1444(Interfaces?)X
2 f
720 5036(Winterp)N
1 f
1005(differs)X
1242(from)X
1426(many)X
1632(other)X
1825(UI)X
1938(languages)X
2287(in)X
2377(that)X
2525(it)X
2597(is)X
2678(interpretive)X
3076(rather)X
3292(than)X
3458(compiled.)X
3804(We)X
3944(believe)X
720 5132(that)N
881(interpretation)X
1354(of)X
1462(UI)X
1587(speci\256cations)X
2063(offers)X
2291(a)X
2367(number)X
2652(of)X
2759(practical)X
3076(advantages)X
3473(over)X
3656(the)X
3794(compilation)X
720 5228(approach)N
1035(taken)X
1229(by)X
2 f
1329(UIL)X
1 f
1458(,)X
1498(traditional)X
1847(C)X
1920(programming)X
2376(with)X
2538(the)X
2656(Xtoolkit,)X
2962(or)X
3049(compiled)X
3367(UIMSs.)X
720 5352(Neither)N
987(traditional)X
1342(C)X
1421(Xtoolkit)X
1713(applications,)X
2146(nor)X
2 f
2279(UIL)X
1 f
2434(applications)X
2847(take)X
3007(advantage)X
3359(of)X
3453(the)X
3578(interpretive)X
3975(nature)X
720 5448(of)N
810(the)X
931(Xtoolkit.)X
1240(When)X
1455(programming)X
1914(in)X
1999(C,)X
2095(one)X
2233(is)X
2308(forced)X
2536(to)X
2620(go)X
2722(through)X
2993(tedious)X
3246(edit/compile/test)X
3801(cycles)X
4024(even)X
8 s
10 f
720 5528(hhhhhhhhhhhhhhhhhh)N
6 s
1 f
800 5603(6)N
8 s
856 5622(In)N
925(analogy)X
1143(to)X
1209(``shell)X
1388(scripts'')X
1613(running)X
1828(under)X
2 f
1989(Unix)X
1 f
2129(shell)X
2266(programs.)X
6 s
800 5697(7)N
2 f
8 s
856 5716(The)N
968(Coordinator)X
1 f
1305(is)X
1364(a)X
1408(registered)X
1675(trademark)X
1949(of)X
2018(Action)X
2208(Technologies,)X
2584(Inc.)X
10 s
2418 6144(2)N

3 p
%%Page: 3 4
10 s 0 xH 0 xS 1 f
920 5548(Figure)N
1159(1.)X
1250(The)X
2 f
1406(Strudel)X
1 f
1668(prototype,)X
2026(showing)X
2328(the)X
2457(e-mail)X
2693(browser)X
2983(and)X
3130(some)X
3330(active)X
3553(e-mail)X
3789(forms)X
920 5644(used)N
1087(in)X
1169(conversations)X
1630(arising)X
1868(during)X
2097(team)X
2273(software)X
2570(production.)X
2418 6144(3)N

4 p
%%Page: 4 5
10 s 0 xH 0 xS 1 f
720 672(for)N
834(trivial)X
1045(program)X
1337(changes.)X
1636(The)X
1781(Xtoolkit)X
2067(provides)X
2363(a)X
2419(resource)X
2712(manager)X
3009(\(Xrm\))X
3230(that)X
3371(allows)X
3601(one)X
3738(to)X
3821(shorten)X
4078(the)X
720 768(edit/compile/test)N
1290(cycle)X
1497(for)X
1628(simple)X
1878(application)X
2271(tailoring)X
2579(such)X
2763(as)X
2867(selecting)X
3188(fonts,)X
3404(colors,)X
3656(label)X
3848(names,)X
4109(or)X
720 864(choosing)N
1040(from)X
1227(an)X
1335(enumerated)X
1742(set)X
1863(of)X
1962(application-de\256ned)X
2613(customization)X
3094(choices.)X
3387(This)X
3561(is)X
3646(implemented)X
4096(by)X
720 960(having)N
978(the)X
1116(application)X
1512(load)X
1690(\(non-interactive)X
2243(interpretation\))X
2742(the)X
2880(appropriate)X
3286(resource)X
3599(settings)X
3883(from)X
4078(the)X
720 1056(resource)N
1017(data)X
1175(base)X
1342(at)X
1424(application)X
1804(initialization)X
2232(time.)X
2438(While)X
2659(this)X
2799(mechanism)X
3189(eliminates)X
3543(a)X
3604(compilation)X
4011(stage)X
720 1152(for)N
836(a)X
894(number)X
1161(of)X
1250(simple)X
1485(customizations,)X
2007(the)X
2127(result)X
2327(is)X
2402(still)X
2543(a)X
2601(cycle)X
2793(consisting)X
3139(of)X
3228(repeated)X
3523(edits)X
3696(of)X
3784(the)X
3903(resource)X
720 1248(database)N
1018(followed)X
1324(by)X
1425(running)X
1695(the)X
1814(application)X
2191(to)X
2274(test)X
2406(the)X
2525(results.)X
2 f
2795(UIL)X
1 f
2945(expands)X
3229(on)X
3330(the)X
3449(type)X
3608(of)X
3696(customizations)X
720 1344(possible)N
1006(via)X
1128(Xrm)X
1298(by)X
1401(reading)X
1665(a)X
1724(compiled,)X
2065(structured)X
2409(description)X
2788(of)X
2878(the)X
2999(widget)X
3240(hierarchy,)X
3587(along)X
3788(with)X
3953(associ-)X
720 1440(ated)N
883(resources)X
1216(and)X
1361(callback)X
1658(names.)X
1932(Rather)X
2175(than)X
2342(``interpreting'')X
2853(the)X
2980(data)X
3144(from)X
3330(a)X
3396(resource)X
3699(database,)X
4026(as)X
4123(is)X
720 1536(done)N
898(with)X
1062(Xrm,)X
2 f
1251(UIL)X
1 f
1402(uses)X
1562(an)X
1660(additional)X
2001(compilation)X
2404(stage.)X
2610(While)X
2 f
2827(UIL)X
1 f
2977(compilation)X
3380(is)X
3454(quicker)X
3716(than)X
3875(C)X
3949(compi-)X
720 1632(lation,)N
942(it)X
1006(still)X
1145(makes)X
1370(rapid)X
1555(prototyping)X
1948(impractical)X
2329(because)X
2604(of)X
2691(the)X
2809(edit/compile/test)X
3362(cycle.)X
720 1756(In)N
810(contrast)X
1087(to)X
1172(the)X
1293(batch)X
1490(approach)X
1808(provided)X
2116(by)X
2 f
2219(UIL)X
1 f
2371(or)X
2461(C,)X
2 f
2557(Winterp)X
1 f
2839(allows)X
3072(interactive)X
3435(programmatic)X
3909(manipu-)X
720 1852(lation)N
935(of)X
1035(the)X
1166(UI)X
1284(via)X
1415(a)X
1484(message-passing)X
2055(mechanism)X
2452(that)X
2604(takes)X
2801(full)X
2944(advantage)X
3302(of)X
3401(the)X
3531(interpretive,)X
3953(object-)X
720 1948(oriented)N
1010(nature)X
1238(of)X
1332(the)X
1457(Xtoolkit.)X
1770(The)X
1922(Motif)X
2131(widgets)X
2407(are)X
2533(``interpretive'')X
3038(in)X
3128(that)X
3276(one)X
3420(can)X
3560(give)X
3726(programmatic)X
720 2044(commands)N
1092(to)X
1179(the)X
1301(Motif)X
1507(library)X
1745(to)X
1831(create)X
2048(new)X
2206(widgets,)X
2499(and)X
2639(the)X
2761(Xt)X
2865(intrinsics)X
3182(will)X
3330(create)X
3547(the)X
3669(new)X
3827(widget)X
4069(on-)X
720 2140(the-\257y.)N
1009(One)X
1183(can)X
1335(also)X
1504(send)X
1691(messages)X
2035(to)X
2138(created)X
2412(widget)X
2671(objects)X
2939(via)X
3078(the)X
3217(``methods'')X
3637(implemented)X
4096(by)X
720 2236(widget-class)N
1144(speci\256c)X
1412(functions)X
1733(in)X
1818(Motif)X
2023(or)X
2113(the)X
2234(Xt)X
2337(Intrinsics)X
2658(\(such)X
2855(as)X
8 f
2973(XtSetValues\(\))X
1 f
(\))S
3647(\320)X
3750(the)X
3871(effects)X
4109(of)X
720 2332(these)N
908(messages)X
1234(are)X
1356(interpreted)X
1727(by)X
1830(the)X
1951(toolkit)X
2182(and)X
2321(result)X
2522(in)X
2607(an)X
2706(eventual)X
3001(updating)X
3304(of)X
3394(the)X
3515(graphics)X
3810(and)X
3949(actions)X
720 2428(associated)N
1070(with)X
1232(the)X
1350(widget.)X
2 f
720 2552(Winterp)N
1 f
1003(provides)X
1304(access)X
1535(to)X
1622(the)X
1745(``interpretive'')X
2248(nature)X
2475(of)X
2568(the)X
2692(Motif)X
2900(widgets)X
3175(through)X
3450(its)X
3551(built-in)X
2 f
3812(Xlisp)X
1 f
4002(inter-)X
720 2648(preter.)N
956(The)X
1109(interpretive)X
1507(approach)X
1830(enables)X
2099(rapid)X
2292(prototyping)X
2693(because)X
2976(one)X
3120(receives)X
3412(immediate)X
3778(feedback)X
4096(on)X
720 2744(changes)N
1006(\320)X
1113(one)X
1256(can)X
1395(incrementally)X
1863(build)X
2055(up)X
2163(a)X
2227(user)X
2389(interface,)X
2719 0.2321(piece-by-piece,)AX
3241(and)X
3385(one)X
3529(can)X
3669(play)X
3835(``what)X
4073(if'')X
720 2840(games)N
951(by)X
1057(modifying)X
1416(both)X
1584(the)X
1708(layout)X
1934(and)X
2076(functionality)X
2510(of)X
2602(the)X
2725(application.)X
2 f
3126(Winterp)X
1 f
3409(even)X
3586(includes)X
3878(a)X
3939(``direct)X
720 2936(manipulation'')N
1219(primitive)X
1535(that)X
1678(allows)X
1910(changing)X
2228(widget)X
2470(resources,)X
2818(callbacks)X
3141(and)X
3281(event-handlers)X
3778(by)X
3882(designat-)X
720 3032(ing)N
843(a)X
900(widget)X
1139(with)X
1302(the)X
1420(mouse.)X
1669(One)X
1823(need)X
1995(not)X
2117(rerun)X
2307(or)X
2394(recompile)X
2735(the)X
2853(application)X
3229(in)X
3311(order)X
3501(to)X
3583(see)X
3706(the)X
3824(results)X
4053(of)X
4140(a)X
720 3128(change)N
983(to)X
1080(a)X
2 f
1151(UIL)X
1 f
1315(or)X
1417(X)X
1510(resource)X
1818(\320)X
1933(with)X
2 f
2110(Winterp)X
1 f
2368(,)X
2423(incremental)X
2837(changes)X
3131(to)X
3228(an)X
3339(application)X
3730(can)X
3877(be)X
3989(tested)X
720 3224(interactively.)N
3 f
720 3416(4.)N
820(The)X
973(Role)X
1149(of)X
1236(a)X
1296(Programming)X
1797(Language)X
2154(in)X
2240(a)X
2300(UIMS.)X
1 f
720 3540(The)N
866(UIMS)X
1087(approach)X
1403(requires)X
1683(the)X
1802(power)X
2024(of)X
2112(an)X
2209(embedded)X
2560(programming)X
3017(language)X
3328(to)X
3411(allow)X
3611(abstractions)X
4016(to)X
4100(be)X
720 3636(derived)N
998(from)X
1191(complex)X
1504(changes)X
1800(in)X
1899(application)X
2291(state)X
2474(and)X
2626(data.)X
2816(Such)X
3012(abstractions)X
3431(provide)X
3712(the)X
3846(separation)X
720 3732(between)N
1012(application)X
1392(semantics)X
1732(and)X
1872(the)X
1994 0.2596(user-interface)AX
2461(that)X
2605(UIMSs)X
2860(strive)X
3062(for.)X
3200(This)X
3366(separation)X
3721(is)X
3799(really)X
4007(noth-)X
720 3828(ing)N
856(other)X
1055(than)X
1227(an)X
1337(extension)X
1678(of)X
1779(the)X
1910(notion)X
2147(of)X
2247(encapsulation)X
2721(to)X
2816(the)X
2947(architecture)X
3360(of)X
3460(applications)X
3880(based)X
4096(on)X
720 3924(graphical)N
1041 0.2167(user-interfaces.)AX
1557(Such)X
1739(encapsulation)X
2202(makes)X
2429(it)X
2495(easier)X
2705(to)X
2789(experiment)X
3172(with)X
3336(the)X
3456(``look)X
3674(and)X
3812(feel'')X
4010(of)X
4100(an)X
720 4020(application)N
1099(without)X
1366(side-effects,)X
1780(enabling)X
2079(designers)X
2405(to)X
2490(more)X
2678(easily)X
2888(re\256ne)X
3094(their)X
3264(applications)X
3673(via)X
3793(rapid)X
3980(proto-)X
720 4116(typing.)N
968(A)X
1050(well)X
1212(architected)X
1589(system)X
1835(will)X
1983(also)X
2136(provide)X
2405(end-users)X
2737(with)X
2903(a)X
2963(means)X
3192(of)X
3283(customizing)X
3699(the)X
3822(UI)X
3932(without)X
720 4212(adverse)N
988(effects)X
1225(on)X
1327(the)X
1447(application's)X
1883(functionality.)X
2334(By)X
2449(embedding)X
2827(full)X
2960(programming)X
3417(language)X
3728(capabilities)X
4114(in)X
720 4308(a)N
779 0.2596(user-interface)AX
1245(language,)X
2 f
1578(Winterp)X
1 f
1859(allows)X
2091(designers)X
2417(to)X
2502(develop)X
2779(the)X
2900(appropriate)X
3289(language-based)X
3812(UI)X
3921(abstrac-)X
720 4404(tions)N
895(for)X
1009(the)X
1127(particular)X
1455(kind)X
1617(of)X
1704(application)X
2080(and)X
2216(extension)X
2543(architecture.)X
720 4528(In)N
814(contrast)X
1095(to)X
2 f
1184(Winterp)X
1 f
1442(,)X
1489(many)X
1694(of)X
1788(the)X
1914(problems)X
2240(in)X
2330(developing)X
2714(and)X
2858(extending)X
3202(applications)X
3617(based)X
3828(on)X
3936(Motif's)X
720 4624(User)N
894(Interface)X
1203(Language)X
1542(\()X
2 f
1569(UIL)X
1 f
1698(\))X
1747(stem)X
1920(from)X
2098(the)X
2218(lack)X
2374(of)X
2463(full)X
2596(programming)X
3054(language)X
3366(support)X
3628(\320)X
2 f
3729(UIL)X
1 f
3879(only)X
4042(pro-)X
720 4720(vides)N
913(a)X
973(language)X
1287(supporting)X
1653(a)X
1713(module)X
1977(system,)X
2243(a)X
2303(static)X
2496(widget)X
2738(description)X
3119(language,)X
3454(and)X
3595(simple)X
3833(expression)X
720 4816(arithmetic.)N
1115(In)X
1212(non-trivial)X
1580(applications,)X
2017(one)X
2163(must)X
2348(write,)X
2563(compile,)X
2870(and)X
3015(link)X
3168(C)X
3250(code)X
3431(which)X
3656(calls)X
3832(hooks)X
4052(into)X
2 f
720 4912(UIL)N
1 f
879(in)X
971(order)X
1171(to)X
1263(control)X
1520(dynamic)X
1826(dialog)X
2056(components)X
2473(that)X
2624(make)X
2829(up)X
2940(the)X
3069(UI)X
3185(of)X
3283(a)X
3350(real)X
3502(application.)X
3909(Such)X
4100(an)X
720 5008(architecture)N
1127(imposes)X
1416(strong)X
1643(constraints)X
2017(on)X
2124(the)X
2248(amount)X
2514(of)X
2607(customization)X
3082(possible)X
3370(without)X
3640(modifying)X
3999(the)X
4123(C)X
720 5104(source)N
952(code.)X
1146(Ultimately,)X
1530(the)X
1650(lack)X
1806(of)X
1895(a)X
1953(programming)X
2411(language)X
2723(in)X
2 f
2807(UIL)X
1 f
2958(limits)X
3161(the)X
3281(usefulness)X
3637(of)X
3726(separating)X
4078(the)X
720 5200(UI)N
825(description)X
1201(from)X
1377(the)X
1495(application's)X
1929(functionality:)X
920 5324(For)N
1053(a)X
1112(complex)X
1411(interface,)X
1736(fetching)X
2022(widgets)X
2294(from)X
2473(UID)X
8 s
2616 5299(8)N
10 s
2671 5324(\256les)N
2827(won't)X
3037(satisfy)X
3269(all)X
3372(of)X
3462(a)X
3521(programmer's)X
920 5420(needs.)N
1162(Thus,)X
1381(XUI)X
1563(comes)X
1807(with)X
1988(a)X
2063(complete)X
2396(C)X
2487(language)X
2815(library)X
3067(of)X
3172(calls)X
3357(through)X
3644(which)X
3878(the)X
920 5516(DECwindows)N
8 s
1369 5491(9)N
10 s
1424 5516(widgets)N
1696(can)X
1832(be)X
1932(de\256ned)X
2192(and)X
2332(controlled.)X
2701(These)X
2917(calls)X
3088(are)X
3211(useful,)X
3451(but)X
3577(by)X
3681(using)X
3878(the)X
8 s
10 f
720 5596(hhhhhhhhhhhhhhhhhh)N
6 s
1 f
800 5671(8)N
8 s
856 5690(A)N
918(UID)X
1047(\256le)X
1145(is)X
1204(a)X
1248(User)X
1384(Interface)X
1625(Description)X
1939(\256le)X
2037(that)X
2149(is)X
2208(produced)X
2461(by)X
2541(compiling)X
2817(a)X
2861(UIL)X
2983(\256le.)X
6 s
800 5765(9)N
8 s
856 5784(DECwindows)N
1231(is)X
1290(a)X
1334(trademark)X
1608(of)X
1677(Digital)X
1871(Equipment)X
2168(Corporation.)X
10 s
2418 6144(4)N

5 p
%%Page: 5 6
10 s 0 xH 0 xS 1 f
920 672(C)N
1008(language)X
1333(libraries,)X
1651(the)X
1784 0.2404(correspondence)AX
2324(between)X
2627(program)X
2934(structure)X
3250(and)X
3401(program)X
3709(function)X
920 768(given)N
1118(by)X
1218(UIL)X
1372(may)X
1530(be)X
1626(lost.)X
1781([Bourne90)X
2144(\320)X
2244(p.)X
2324(40])X
8 s
2431 743(10)N
10 s
720 892(With)N
2 f
902(Winterp)X
1 f
1160(,)X
1202(programmers)X
1652(can)X
1786(use)X
1915(language)X
2227(constructs)X
2574(to)X
2658(represent)X
2975(and)X
3113(manipulate)X
3491(the)X
3611(state)X
3780(of)X
3869(the)X
3989(appli-)X
720 988(cation)N
938(and)X
1076(the)X
1196(UI.)X
2 f
1343(Winterp)X
1 f
1623(makes)X
1850(an)X
1947(effective)X
2250(prototyping)X
2644(environment)X
3070(because)X
3346(one)X
3483(can)X
3616(use)X
2 f
3744(Xlisp)X
1 f
3929(to)X
4012(build)X
720 1084(the)N
838(user)X
992(interface,)X
1314(prototype)X
1641(the)X
1759(``dialog'')X
2087(aspects)X
2339(of)X
2426(the)X
2544(working)X
2832(application,)X
3229(and)X
3366(use)X
2 f
3494(Xlisp)X
1 f
3658('s)X
3737(object)X
3954(system)X
720 1180(to)N
805(evolve)X
1042(language-based)X
1565(abstractions.)X
1991(Depending)X
2366(on)X
2469(the)X
2589(kind)X
2753(of)X
2842(UI)X
2949(style)X
3122(and)X
3260(application)X
3638(architecture,)X
4060(one)X
720 1276(may)N
882(use)X
2 f
1013(Winterp)X
1 f
1271('s)X
1353(features)X
1633(to)X
1720(encapsulate)X
2120(and)X
2261(separate)X
2550(application)X
2931(functionality)X
3365(from)X
3546(the)X
3669(UI)X
3779(representing)X
720 1372(that)N
868(functionality;)X
1327(alternately)X
1693(one)X
1836(may)X
2001(\256nd)X
2152(it)X
2223(advantageous)X
2687(to)X
2776(build)X
2967(higher)X
3199(level)X
3382(UI)X
3494(constructs)X
3846(which)X
4069(use)X
720 1468(class-inheritance)N
1300(to)X
1402(specialize)X
1759(generic)X
2036(UI)X
2161(objects)X
2428(provided)X
2753(by)X
2873(Motif)X
3095(into)X
3260(application-speci\256c)X
3929(objects.)X
720 1564(Because)N
2 f
1022(Winterp)X
1 f
1280('s)X
1372(language-base)X
1866(is)X
1953(interpretive,)X
2377(it)X
2455(can)X
2601(be)X
2711(used)X
2891(to)X
2986(describe)X
3287(dynamic,)X
3616(data-driven)X
4015(user-)X
720 1660(interfaces)N
1053(such)X
1220(as)X
1307(those)X
1496(found)X
1703(in)X
2 f
1785(Strudel)X
1 f
2016(.)X
720 1784(Traditional)N
1100(UIMSs)X
1355(are)X
1478(based)X
1685(on)X
1789(an)X
1889(abstract)X
2163(model)X
2387(for)X
2505(separating)X
2859(application)X
3239(functionality)X
3672(from)X
3853(its)X
3953(associ-)X
720 1880(ated)N
884(user)X
1048(interface)X
1360(\320)X
1470(e.g)X
1596(Smalltalk's)X
1990(Model)X
2229(View)X
2432(Controller,)X
2810(the)X
2937(Seeheim)X
3242(UIMS)X
3471(model,)X
3720(transition)X
4051(net-)X
720 1976(works,)N
960(event)X
1158(grammars,)X
1523(etc.)X
1661([Myers89].)X
2 f
2044(Winterp)X
1 f
2326(is)X
2403(not)X
2530(a)X
2591(UIMS;)X
2838(it)X
2907(provides)X
3208(little)X
3379(policy)X
3604(for)X
3723(separating)X
4078(the)X
720 2072(application)N
1097(semantics)X
1434(from)X
1611(the)X
1729(UI.)X
1874(However,)X
2 f
2209(Winterp)X
1 f
2467('s)X
2545(language)X
2855(base)X
3018(enables)X
3279(the)X
3397(design)X
3626(and)X
3762(development)X
720 2168(of)N
807(a)X
863(variety)X
1106(of)X
1193(UI-to-application)X
1770(modularization)X
2275(policies.)X
720 2292(The)N
875(lack)X
1039(of)X
1136(a)X
1202(particular)X
1540(UIMS)X
1770(policy)X
2000(in)X
2 f
2092(Winterp)X
1 f
2380(is)X
2463(in)X
2555 0.3750(accordance)AX
2948(with)X
3121(the)X
3250(current)X
3509(view)X
3696(that)X
3847(traditional)X
720 2388(UIMS)N
950(models)X
1211(are)X
1340(problematic;)X
1775(that)X
1925(it)X
1999(is)X
2082(dif\256cult)X
2365(to)X
2457(separate)X
2751(UI)X
2866(from)X
3052(application)X
3438(semantics)X
3783(in)X
3874(a)X
3939(general)X
720 2484(way:)N
940 2608(...)N
1023(in)X
1108(recent)X
1328(years,)X
1541(as)X
1631(UIMSs)X
1885(are)X
2007(built)X
2177(to)X
2263(handle)X
2501(more)X
2690(sophisticated)X
3132(user)X
3290(interfaces)X
3627(with)X
3793(direct)X
920 2704(manipulation)N
1365(...)X
1448(there)X
1632(has)X
1762(been)X
1937(concern)X
2215(that)X
2357(the)X
2477(separation)X
2829(between)X
3119(user)X
3275(interface)X
3579(and)X
3717(applica-)X
920 2800(tion)N
1073(raises)X
1286(more)X
1481(problems)X
1809(than)X
1977(it)X
2051(solves.)X
2301(Perhaps)X
2585(the)X
2713(prototypical)X
3130(problem)X
3427(arising)X
3675(from)X
3861(this)X
920 2896(separation)N
1283(is)X
1369(that)X
1522(of)X
1622(whether)X
1914(to)X
2009(handle)X
2256(the)X
2387(semantics)X
2736(of)X
2836(an)X
2945(interaction)X
3321(in)X
3416(the)X
3547(UIMS)X
3779(or)X
3878(the)X
920 2992(application)N
1302(program.)X
1620(For)X
1757(example,)X
2075(feedback)X
2392(is)X
2471(a)X
2533(task)X
2688(typically)X
2994(handled)X
3274(by)X
3380(the)X
3504(UIMS,)X
3750(but)X
3878(the)X
920 3088(semantically)N
1356(rich)X
1512(feedback)X
1833(required)X
2131(by)X
2241(direct)X
2454(manipulation)X
2906(user)X
3070(interfaces)X
3413(\(e.g.)X
3586(highlighting)X
920 3184(while)N
1121(moving)X
1388(the)X
1509(mouse\))X
1768(is)X
1844(dif\256cult)X
2120(to)X
2205(do)X
2309(without)X
2577(involving)X
2907(the)X
3029(underlying)X
3400(application.)X
3800(If)X
3878(the)X
920 3280(application)N
1309(and)X
1458(the)X
1589(UIMS)X
1822(thus)X
1988(need)X
2173(to)X
2268(frequently)X
2631(interact,)X
2925(their)X
3104(separation)X
3466(becomes)X
3779(a)X
3847(hin-)X
920 3376(drance)N
1155(rather)X
1363(than)X
1521(a)X
1577(help....)X
1815([Rosenberg88])X
720 3500(In)N
818(developing)X
1205(applications)X
1623(with)X
2 f
1796(Winterp)X
1 f
2085(we)X
2210(have)X
2393(found)X
2611(that)X
2762(for)X
2887(certain)X
3137(classes)X
3392(of)X
3491(applications,)X
3930(such)X
4109(as)X
720 3596(instrumentation)N
1248(controllers,)X
1637(a)X
1699(simple)X
1938(recursive,)X
2279(event-driven)X
2711(state)X
2885(machine)X
8 s
3157 3571(11)N
10 s
3248 3596(is)N
3328(an)X
3431(appropriate)X
3824(abstraction)X
720 3692(separating)N
1072(application)X
1450(semantics)X
1788(from)X
1965(the)X
2084(UI.)X
2230(In)X
2318(dynamic,)X
2635(data-driven)X
3022(UI's)X
3186(\(browsers,)X
3544(graph)X
3748(editors,)X
4007(CAD)X
720 3788(drawing)N
1008(tools\),)X
1235(separating)X
1590(the)X
1714(UI)X
1825(from)X
2007(the)X
2131(application)X
2513(objects)X
2766(has)X
2899(proven)X
3148(to)X
3236(create)X
3455(messy)X
3681(architectures;)X
4140(a)X
720 3884(better)N
926(solution)X
1206(is)X
1282(to)X
1367(use)X
1497(Motif)X
1702(widgets)X
1974(subclassed)X
8 s
2317 3859(12)N
10 s
2404 3884(into)N
2551(application-speci\256c)X
3203(UI)X
3312(objects)X
3563(handling)X
3867(their)X
4038(own)X
720 3980(state)N
893(and)X
1035(actions.)X
1328(We)X
1466(believe)X
1724(that)X
1870(it)X
1940(is)X
2019(best)X
2174(to)X
2261(give)X
2424(programmers)X
2877(the)X
3000(full)X
3136(capabilities)X
3526(of)X
3618(the)X
3741(Motif)X
3948(toolkit,)X
720 4076(augmented)N
1102(by)X
2 f
1212(Winterp)X
1 f
1470('s)X
1558(interpretive,)X
1978(language-based)X
2509(interface.)X
2862(Application)X
3271(programmers)X
3730(can)X
3873(use)X
4011(these)X
720 4172(features)N
995(to)X
1077(evolve)X
1311(the)X
1429(appropriate)X
1815(UIMS)X
2035(to)X
2117(do)X
2217(the)X
2335(job.)X
2 f
720 4296(Winterp)N
1 f
978('s)X
1069(policy-free)X
1455(UIMS)X
1688(architecture)X
2101(makes)X
2 f
2339(Winterp)X
1 f
2597(-based)X
2840(applications)X
3260(far)X
3383(more)X
3581(customizable)X
4038(than)X
720 4392(applications)N
1133(based)X
1342(on)X
1448(UIL)X
1608(or)X
1701(the)X
1825(Widget)X
2087(Creation)X
2389(Library)X
2656(\(WCL\).)X
2934(Both)X
3115(UIL)X
3275(and)X
3417(WCL)X
3620(enforce)X
3887(an)X
3988(archi-)X
720 4488(tecture)N
963(which)X
1183(strongly)X
1470(separates)X
1790(the)X
1913(dynamics)X
2245(of)X
2337(the)X
2460(application)X
2841(from)X
3022(the)X
3145(static)X
3339(presentation)X
3756(of)X
3848(the)X
3971(panels)X
720 4584(comprising)N
1105(the)X
1228(application's)X
1667(UI.)X
1797(Such)X
1982(an)X
2083(architecture)X
2488(will)X
2637(only)X
2804(allow)X
3007(trivial)X
3223(customization)X
3697(of)X
3789(applications)X
720 4680(employing)N
1089(state-based)X
1473(dynamics.)X
1847(A)X
1932(simple)X
2172(example)X
2471(of)X
2565(such)X
2740(a)X
2804(problem:)X
3121(one)X
3265(wants)X
3480(to)X
3570(add)X
3714(a)X
3778(button)X
4010(to)X
4100(an)X
720 4776(application)N
1097(that)X
1238(does)X
1406(the)X
1525(same)X
1711(thing)X
1896(as)X
1984(a)X
2041(menu-entry)X
2431(\(because)X
2733(one)X
2869(selects)X
3103(this)X
3238(entry)X
3423(often\).)X
3675(The)X
3820(application)X
720 4872(designer)N
1014(had)X
1152(the)X
1273(menu)X
1474(entry)X
1662(``grey)X
1882(out'')X
2061(to)X
2146(indicate)X
2423(that)X
2566(it)X
2633(is)X
2709(not)X
2834(a)X
2893(suitable)X
3165(choice)X
3398(given)X
3599(a)X
3658(particular)X
3989(appli-)X
720 4968(cation)N
940(state.)X
1131(With)X
1315(UIL)X
1473(or)X
1564(WCL,)X
1786(special)X
2033(code)X
2209(must)X
2387(be)X
2486(written)X
2736(at)X
2817(the)X
2938(C-language)X
3331(level)X
3510(to)X
3595(handle)X
3832(such)X
4002(state-)X
720 5064(based)N
932(changes;)X
1242(this)X
1386(code)X
1567(is)X
1649(tied)X
1798(to)X
1889(assumptions)X
2313(about)X
2520(the)X
2647(static)X
2845(interface)X
3156(described)X
3493(by)X
3602(the)X
3730(user)X
3894(interface)X
8 s
10 f
720 5144(hhhhhhhhhhhhhhhhhh)N
6 s
1 f
800 5219(10)N
8 s
880 5238(This)N
1010(quote)X
1168(from)X
1309([Bourne90)X
1599(\320)X
1680(p.)X
1745(40])X
1847(comes)X
2027(from)X
2168(an)X
2245(article)X
2421(on)X
2502(programming)X
2867(with)X
2998(DECwindows,)X
3390(focusing)X
3627(on)X
3708(the)X
3803(use)X
720 5318(of)N
2 f
797(UIL)X
1 f
900(.)X
956(Although)X
1222(the)X
2 f
1324(UIL)X
1 f
1451(in)X
1525(DECwindows)X
1908(is)X
1975(not)X
2081(the)X
2183(same)X
2338(as)X
2415(Motif's)X
2 f
2630(UIL)X
1 f
2733(,)X
2772(both)X
2909(versions)X
3145(provide)X
3363(essentially)X
3656(the)X
3757(same)X
720 5398(functionality.)N
6 s
800 5473(11)N
8 s
880 5492(Lisp's)N
1056(list)X
1151(and)X
1259(symbol)X
1464(manipulation)X
1818(features)X
2035(make)X
2189(it)X
2241(especially)X
2512(easy)X
2641(to)X
2707(implement)X
2997(such)X
3130(state)X
3263(machines.)X
6 s
800 5567(12)N
8 s
880 5586(Note)N
1028(that)X
2 f
1148(Winterp)X
1 f
1354(-Lisp)X
1513(allows)X
1704(subclassing)X
2023(of)X
2100(widgets)X
2323(without)X
2543(resorting)X
2794(to)X
2868(the)X
2970(complexities)X
3321(and)X
3437(tedium)X
3638(of)X
3714(widget)X
720 5666(subclassing)N
1031(in)X
1097(C)X
1156(with)X
1286(the)X
1380(X)X
1442(toolkit.)X
10 s
2418 6144(5)N

6 p
%%Page: 6 7
10 s 0 xH 0 xS 1 f
720 672(language.)N
1060(In)X
1157(the)X
1285(case)X
1454(of)X
1551(the)X
1679(customization)X
2158(just)X
2303(described,)X
2661(the)X
2789(appropriate)X
3185(state-based)X
3572(inactivation)X
3980(of)X
4078(the)X
720 768(button)N
951(may)X
1116(not)X
1245(occur)X
1451(\320)X
1558(this)X
1700(can)X
1838(result)X
2042(in)X
2130(the)X
2254(application)X
2636(entering)X
2925(a)X
2987(disallowed)X
3360(state)X
3533(if)X
3608(the)X
3732(user)X
3892(selects)X
4132(it)X
720 864(without)N
986(knowing)X
1288(the)X
1408(choice)X
1640(was)X
1787(invalid.)X
2071(Even)X
2258(if)X
2329(the)X
2449(error)X
2628(can)X
2762(be)X
2860(trapped)X
3123(in)X
3207(the)X
3327(button's)X
3611(callback,)X
3921(the)X
4042(user)X
720 960(is)N
800(not)X
929(being)X
1134(given)X
1339(the)X
1464(kind)X
1633(of)X
1727(state-based)X
2111(feedback)X
2429(that)X
2576(is)X
2656(the)X
2781(hallmark)X
3093(of)X
3186(good)X
3372(UI)X
3483(design.)X
3758(The)X
3909(problem)X
720 1056(here)N
886(is)X
966(that)X
1113(application)X
1496(state)X
1670(cannot)X
1911(be)X
2014(described)X
2349(in)X
2438(the)X
2563(UI)X
2675(language.)X
3012(The)X
3165(lack)X
3327(of)X
3422(programming)X
3886(language)X
720 1152(features)N
997(make)X
1193(it)X
1259(impossible)X
1627(to)X
1710(propagate)X
2048(even)X
2221(the)X
2340(simplest)X
2627(state)X
2795(changes)X
3075(to)X
3158(state-dependent)X
3683(UI)X
3789(components)X
720 1248(and)N
856(this)X
991(creates)X
1235(an)X
1331(inelegant)X
1645(architecture)X
2045(for)X
2159(both)X
2321(application)X
2697(designers)X
3020(and)X
3156(application)X
3532(customizers.)X
720 1372(UIL)N
875(and)X
1013(WCL)X
1213(force)X
1401(application)X
1779(architectures)X
2212(which)X
2430(hard-code)X
2774(application)X
3152(dialog)X
3374(in)X
3458(C)X
3533(for)X
3649(certain)X
3890(expected)X
720 1468(UI)N
828(presentations)X
1274(described)X
1605(in)X
1690(the)X
1811 0.2596(user-interface)AX
2276(language.)X
2608(The)X
2755(assumption,)X
3161(that)X
3303(dialog)X
3525(and)X
3663(presentation)X
4077(are)X
720 1564(separate,)N
1024(limits)X
1225(the)X
1343(kinds)X
1536(of)X
1624(UI)X
1730(customizations)X
2231(that)X
2372(are)X
2492(possible)X
2775(to)X
2858(trivial)X
3070(layout)X
3291(modi\256cations.)X
3767(Applications)X
720 1660(use)N
850(dialog)X
1073(to)X
1158(prompt)X
1412(the)X
1532(user)X
1688(for)X
1804(information)X
2204(needed)X
2454(to)X
2538(complete)X
2854(a)X
2912(previously)X
3272(executed)X
3580(command.)X
3958(Dialog)X
720 1756(is)N
796(also)X
949(used)X
1120(to)X
1206(limit)X
1380(the)X
1502(amount)X
1766(of)X
1857(screen)X
2087(real)X
2232(estate)X
2439(used)X
2610(by)X
2714(an)X
2814(application)X
3194(\320)X
3298(selection)X
3607(choices)X
3872(and)X
4012(input)X
720 1852(\256elds)N
915(that)X
1057(are)X
1178(not)X
1302(of)X
1391(primary)X
1667(concern)X
1944(are)X
2065(hidden)X
2305(until)X
2472(needed.)X
2741(Personal)X
3038 0.3625(preference,)AX
3420(screen)X
3647(real)X
3789(estate)X
3993(usage)X
720 1948(and)N
862(application)X
1244(usage)X
1453(patterns)X
1733(should)X
1972(dictate)X
2212(whether)X
2497(one)X
2639(elects)X
2848(to)X
2936(select)X
3145(a)X
3208(choice)X
3445(directly,)X
3737(or)X
3831(via)X
3956(dialog.)X
720 2044(Thus,)N
930(the)X
1058(customization)X
1537(of)X
1634(dialog)X
1864(versus)X
2099(direct-presentation)X
2731(may)X
2898(be)X
3003(a)X
3068(useful)X
3293(feature)X
3546(for)X
3669(certain)X
3917(applica-)X
720 2140(tions.)N
928(For)X
1073(example,)X
1399(some)X
1602(electronic)X
1953(mail)X
2129(\(e-mail\))X
2422(interfaces)X
2769(support)X
3043(multiple)X
3343(folders)X
3600(for)X
3728(\256ling/copying)X
720 2236(information)N
1121(that)X
1263(is)X
1338(received)X
1633(in)X
1717(one's)X
1913(``in-box''.)X
2272(Some)X
2476(e-mail)X
2703(UI's)X
2868(will)X
3014(use)X
3143(dialog)X
3365(for)X
3481(folder)X
3695(selection)X
4002(when)X
720 2332(a)N
781(``copy'')X
1070(or)X
1162(``move'')X
1473(operation)X
1801(is)X
1879(invoked.)X
2182(People)X
2425(doing)X
2632(a)X
2694(lot)X
2804(of)X
2897(\256ling)X
3091(may)X
3255(prefer)X
3474(to)X
3562(have)X
3740(direct)X
3949(control)X
720 2428(over)N
884(the)X
1003(selected)X
1284(folder)X
8 s
1476 2403(13)N
10 s
2428(,)Y
1582(rather)X
1792(than)X
1952(having)X
2192(the)X
2312(system)X
2556(prompt)X
2809(for)X
2925(a)X
2983(folder)X
3197(each)X
3367(time.)X
3551(With)X
3733(UIL)X
3889(or)X
3978(WCL,)X
720 2524(customization)N
1201(of)X
1300(the)X
1430(tradeoffs)X
1748(between)X
2048(presentation)X
2472(and)X
2620(dialog)X
2852(is)X
2937(not)X
3071(possible)X
3365(within)X
3600(the)X
3729(user)X
3894(interface)X
720 2620(language)N
1030(due)X
1166(to)X
1248(lack)X
1402(of)X
1489(programming)X
1945(language)X
2255(constructs.)X
2620(With)X
2 f
2800(Winterp)X
1 f
3058(,)X
3098(such)X
3265(customizations)X
3765(are)X
3884(possible.)X
3 f
720 2812(5.)N
820(Advantages)X
1240(of)X
1327(Lisp)X
1497(as)X
1588(a)X
1648(UIMS)X
1877(Language)X
1 f
720 2936(Programming)N
1189(language)X
1508(features)X
1792(are)X
1920(present)X
2181(in)X
2272(UIMSs)X
2532(such)X
2708(as)X
2 f
2804(Open)X
3007(Dialogue)X
1 f
3334([Schulert88],)X
3785(and)X
2 f
3931(Serpent)X
1 f
720 3032([SEI89].)N
2 f
1047(Winterp)X
1 f
1338(differs)X
1581(from)X
1770(such)X
1950(UIMSs)X
2214(because)X
2502(it)X
2579(does)X
2759(not)X
2894(attempt)X
3167(to)X
3262(de\256ne)X
3491(a)X
3560(new)X
3727(user)X
3894(interface)X
720 3128(language)N
1032(into)X
1178(which)X
1396(programming)X
1854(language)X
2167(constructs)X
2515(need)X
2690(to)X
2775(be)X
2874(introduced.)X
3280(Rather,)X
2 f
3537(Winterp)X
1 f
3818(uses)X
3979(a)X
4038(sub-)X
720 3224(set)N
831(of)X
920(a)X
978(standard)X
1272(language)X
1584(\320)X
1686(Common)X
2005(Lisp)X
2169(\320)X
2270(and)X
2407(extends)X
2673(this)X
2809(language)X
3120(to)X
3203(describe)X
3492(UI)X
3598(layout)X
3819(and)X
3956(dialog.)X
720 3320(The)N
873(choice)X
1111(of)X
1206(Lisp)X
1376(as)X
1471(the)X
1597(widget)X
1843(layout)X
2071(and)X
2215(prototyping)X
2616(language)X
2934(in)X
2 f
3025(Winterp)X
1 f
3312(provides)X
3617(important)X
3957(advan-)X
720 3416(tages:)N
10 f
920 3540(g)N
1 f
1040(Highly)X
1282(expressive:)X
920 3664(Lisp)N
1085(allows)X
1317(new)X
1474(functionality)X
1906(to)X
1991(be)X
2090(expressed)X
2430(quickly)X
2693(using)X
2889(less)X
3032(code)X
3207(than)X
3369(an)X
3469(equivalent)X
3827(C)X
3904(program)X
920 3760(because)N
1198(it)X
1265(is)X
1341(a)X
1400(high-level)X
1748(language)X
2061(featuring)X
2374(symbol)X
2632(and)X
2771(list)X
2890(manipulation)X
3334([Creech87b])X
3758([Creech87a],)X
920 3856(\256rst)N
1102(class)X
1316(procedures)X
1727([Creech87b])X
2187([Creech87a],)X
2663(object-oriented)X
3207(programming)X
3701([Betz89],)X
4060(and)X
920 3952(automatic)N
1259(memory)X
1549(management)X
1982(via)X
2103(garbage)X
2381(collection)X
2719([Creech87b])X
3143([Creech87a].)X
3583(Lisp's)X
3805(features)X
4082(for)X
920 4048(manipulating)N
1368(lists)X
1522(and)X
1664(trees)X
1842(of)X
1935(arbitrary)X
2238(objects)X
2491(are)X
2616(used)X
2789(to)X
2877(represent)X
3199(UI)X
3311(layout)X
3538(structures)X
3877(and)X
2 f
4020(Win-)X
920 4144(terp)N
1 f
1069(introduces)X
1423(new)X
1577(objects)X
1824(\(widget-objects\))X
2370(to)X
2452(represent)X
2767(UI)X
2872(components.)X
10 f
920 4268(g)N
1 f
1040(Designed)X
1363(to)X
1445(be)X
1541(interactive,)X
1920(interpretive:)X
920 4392(Lisp)N
1091(makes)X
1325(a)X
1390(good)X
1579(environment)X
2013(to)X
2104(drive)X
2298(an)X
2403(interactive)X
2771(interface)X
3082(to)X
3174(the)X
3302(Motif)X
3514(widgets)X
3793(because)X
4078(the)X
920 4488(language)N
1242(was)X
1399(designed)X
1716(to)X
1810(be)X
1918(interpreted.)X
2338(Interpretation)X
2807(can)X
2951(also)X
3112(be)X
3220(accomplished)X
3692(in)X
3785(traditionally)X
920 4584(compiled)N
1240(languages)X
1583(\(such)X
1779(as)X
1868(C\),)X
1990(but)X
2115(in)X
2200(Lisp,)X
2385(small)X
2581(one-off)X
2841(changes)X
3123(can)X
3258(be)X
3357(made)X
3554(with)X
3719(reduced)X
3997(effort)X
920 4680(due)N
1056(to)X
1138(dynamic)X
1434(typing.)X
1678(Such)X
1858(changes)X
2137(are)X
2256(typical)X
2494(in)X
2576(rapid)X
2761(prototyping.)X
920 4804(Lisp's)N
1163(interactive)X
1546(error)X
1747(handling)X
2071(and)X
2231(debugging)X
2613(allows)X
2866(for)X
3004(programming)X
3484(errors)X
3716(to)X
3822(be)X
3942(caught,)X
920 4900(debugged,)N
1275(and)X
1414(\256xed)X
1597(interactively.)X
2041(Debugging)X
2420(occurs)X
2653(within)X
2880(the)X
3001(environment)X
3429(that)X
3572(caused)X
3814(the)X
3935(error)X
4114(to)X
920 4996(arise,)N
1121(and)X
1266(the)X
1394(full)X
1535(power)X
1766(of)X
1863(the)X
1991(language)X
2311(interpreter)X
2676(is)X
2759(available)X
3079(to)X
3171(allow)X
3379(programmers)X
3837(to)X
3929(inspect,)X
920 5092(alter,)N
1109(or)X
1201(\256x)X
1310(the)X
1433(environment.)X
1883(After)X
2078(\256xing)X
2289(a)X
2350(bug,)X
2515(one)X
2656(may)X
2819(be)X
2920(able)X
3079(to)X
3166(resume)X
3423(execution)X
3760(of)X
3852(ones)X
4024(code)X
920 5188(from)N
1098(the)X
1219(point)X
1406(that)X
1549(caused)X
1791(the)X
1912(error)X
2092(without)X
2359(having)X
2600(to)X
2685(restart)X
2909(the)X
3030(program.)X
3345(These)X
3560(debugging)X
3921(features)X
920 5284(are)N
1039(essential)X
1335(for)X
1449(rapid)X
1634(prototyping.)X
8 s
10 f
720 5410(hhhhhhhhhhhhhhhhhh)N
6 s
1 f
800 5485(13)N
8 s
880 5504(An)N
978(example)X
1214(of)X
1287(a)X
1336(e-mail)X
1520(UI)X
1608(that)X
1725(does)X
1863(not)X
1966(utilize)X
2147(dialog)X
2328(for)X
2423(folder)X
2596(selection)X
2844(is)X
2908(the)X
3007(MIT)X
3145(X)X
3212(Consortium)X
3536(client)X
2 f
3699(xmh)X
1 f
3805(.)X
3842(A)X
720 5584(common)N
965(complaint)X
1242(about)X
2 f
1405(xmh)X
1 f
1532(is)X
1596(that)X
1713(the)X
1811(folder)X
1983(selection)X
2230(area)X
2355(takes)X
2506(up)X
2590(too)X
2692(much)X
2854(real)X
2969(estate.)X
3166(This)X
3300(is)X
3363(yet)X
3461(another)X
3672(example)X
720 5664(where)N
891(dialog)X
1067(versus)X
1246(presentation)X
1574(customization)X
1949(would)X
2125(solve)X
2276(an)X
2352(existing)X
2571(problem.)X
10 s
2418 6144(6)N

7 p
%%Page: 7 8
10 s 0 xH 0 xS 1 f
10 f
920 672(g)N
1 f
1040(Code-Data)X
1408(equivalence:)X
920 796(Lisp)N
1086(data)X
1244(is)X
1321(represented)X
1716(in)X
1802(the)X
1924(same)X
2113(form)X
2293(as)X
2385(Lisp)X
2552(programs)X
2880([Creech87b])X
3307([Creech87a],)X
3750(which)X
3971(means)X
920 892(that)N
1065(programs)X
1392(can)X
1528(perform)X
1811(computations)X
2266(to)X
2352(create/alter)X
2734(data)X
2892(structures)X
3228(representing)X
3649(programs.)X
4016(Such)X
920 988(meta-programming)N
1577(allows)X
1825(the)X
1962(creation)X
2260(of)X
2366(high-level)X
2730(data-driven)X
3135(abstractions)X
3557(for)X
3690(user)X
3863(interfaces)X
920 1084(created)N
1173(programmatically)X
1763(via)X
1881(Motif)X
2083(and)X
2219(Xt)X
2319(Intrinsics)X
2637(calls.)X
2 f
920 1208(Winterp)N
1 f
1178(-Lisp)X
1376(can)X
1517(thus)X
1680(be)X
1786(used)X
1963(to)X
2055(create)X
2278(dynamic)X
2584(widget)X
2832(layouts)X
3093(through)X
3372(computations)X
3833(that)X
3983(create)X
920 1304(and)N
1076(mutate)X
1334(data)X
1508(structures)X
1860(representing)X
2297 0.2167(user-interfaces.)AX
2831(For)X
2982(example,)X
3314(in)X
3416(our)X
2 f
3562(Strudel)X
1 f
3832(groupware)X
920 1400(toolkit,)N
2 f
1171(Winterp)X
1 f
1429('s)X
1510(interpreter)X
1868(and)X
2007(Motif)X
2212(UI)X
2320(primitives)X
2667(are)X
2789(used)X
2959(as)X
3049(a)X
3108(description)X
3487(language)X
3800(for)X
3917(creating)X
920 1496(and)N
1063(processing)X
1433(active/graphical)X
1973(forms.)X
2227(Such)X
2414(forms)X
2628(can)X
2767(be)X
2870(sent)X
3025(\(as)X
3145(textual)X
3389(programs\))X
3745(through)X
4020(stan-)X
920 1592(dard)N
1086(e-mail)X
1314(channels.)X
1658(The)X
1806(receiving)X
2 f
2128(Strudel)X
1 f
2382(system)X
2627(interprets)X
2953(the)X
3074(message)X
3369(and)X
3508(displays)X
3793(a)X
3853(form)X
4033(con-)X
920 1688(taining)N
1172(a)X
1238(user)X
1402(interface)X
1713(built)X
1888(from)X
2073(arbitrary)X
2379(combinations)X
2839(of)X
2935(widgets)X
3213(and)X
3358(bitmaps.)X
3660(These)X
3881(``forms'')X
920 1784(can)N
1056(even)X
1232(be)X
1332(whole)X
1552 0.2321(user-interfaces)AX
2051(and)X
2192(associated)X
2547(programs)X
2875(that)X
3020(can)X
3157(be)X
3258(passed)X
3497(around)X
3745(from)X
3926(user-to-)X
920 1880(user)N
1074(as)X
1161(Lisp)X
1323(``continuations.'')X
8 s
1882 1855(14)N
10 s
1966 1880(See)N
2102(Figure)X
2331(1)X
2391(for)X
2505(an)X
2601(example)X
2893(of)X
2980(a)X
2 f
3036(Strudel)X
1 f
3287(form.)X
3 f
720 2072(6.)N
820(Implementation)X
1387(Issues)X
1611(in)X
1697(Embedding)X
2111(a)X
2171(Lisp)X
2341(Interpreter)X
720 2264(6.1.)N
880(Problems)X
1225(with)X
1396(Traditional)X
1806(Lisp)X
1976(Systems)X
1 f
720 2388(Despite)N
988(its)X
1087(advantages,)X
1488(Lisp)X
1654(is)X
1731(traditionally)X
2146(associated)X
2500(with)X
2666(large,)X
2871(slow)X
3046(and)X
3186(expensive)X
3531(systems)X
8 s
3784 2363(15)N
10 s
3872 2388(\320)N
3976(Lisp's)X
720 2484(\257exibility)N
1052(has)X
1181(its)X
1278(costs.)X
1500(Attempts)X
1815(at)X
1895(building)X
2183(Lisp-based)X
2557(applications)X
2966(that)X
3108(are)X
3228(good)X
3409(citizens)X
3675(on)X
2 f
3776(Unix)X
1 f
3953(works-)X
720 2580(tations)N
959(have)X
1137(been)X
1315(problematic)X
1724(because)X
2005(systems)X
2284(such)X
2457(as)X
2550(Common)X
2874(Lisp)X
3043(\(CL\))X
3226(create)X
3446(huge,)X
3649(resource-hungry)X
720 2676(processes)N
1051(that)X
1193(swap)X
1380(out)X
1504(all)X
1606(other)X
1793(applications)X
2202(and)X
2340(cause)X
2541(memory)X
2830(thrashing)X
3150([Creech87b])X
3574([Creech87a].)X
4034(This)X
720 2772(results)N
950(in)X
1033(unacceptable)X
1474(overall)X
1718(system)X
1961(performance)X
2389(if)X
2459(the)X
2578(CL)X
2701(process)X
2963(is)X
3037(but)X
3160(one)X
3297(of)X
3385(many)X
3584(processes)X
3913(compet-)X
720 2868(ing)N
842(for)X
956(resources)X
1280(on)X
1380(a)X
2 f
1436(Unix)X
1 f
1612(box.)X
720 2992(While)N
948(CL)X
1082(continues)X
1421(to)X
1515(be)X
1623(an)X
1731(excellent)X
2053(prototyping)X
2458(platform,)X
2786(few)X
2939(acceptable)X
3312(solutions)X
3633(to)X
3728(the)X
3859(``delivery)X
720 3088(problem'')N
1075(have)X
1261(been)X
1447(found)X
1668(for)X
1796(applications)X
2217(embedded)X
2581(in)X
2676(a)X
2745(CL)X
2880(environment.)X
3338(One)X
3505(unacceptably)X
3962(drastic)X
720 3184(solution)N
998(is)X
1073(to)X
1157(recode)X
1394(the)X
1514(completed)X
1870(CL-based)X
2204(prototype)X
2533(into)X
2679(C)X
2754(\320)X
2856(an)X
2954(approach)X
3271(often)X
3458(used)X
3627(to)X
3711(create)X
3926(deliver-)X
720 3280(able)N
884(versions)X
1181(of)X
1278(expert)X
1509(systems)X
1791(and)X
1936(other)X
2130(complex)X
2435(applications.)X
2871(This)X
3042(approach)X
3366(is)X
3448(time)X
3619(consuming,)X
4019(error)X
720 3376(prone,)N
944(and)X
1081(changes)X
1361(the)X
1480(feel)X
1622(and)X
1759(the)X
1878(\257exibility)X
2209(of)X
2297(the)X
2416(delivered)X
2736(application:)X
3135(applications)X
3543(prototyped)X
3911(with)X
4074(CL)X
720 3472(assume)N
984(and)X
1127(make)X
1328(use)X
1462(of)X
1556(the)X
1681(underlying)X
2055(features)X
2337(of)X
2431(the)X
2556(Lisp)X
2725(system;)X
2996(these)X
3188(assumptions)X
3610(must)X
3792(be)X
3895(removed)X
720 3568(from)N
896(the)X
1014(design)X
1243(or)X
1330(be)X
1426(recoded)X
1701(in)X
1783(the)X
1901(delivery)X
2184(language.)X
720 3692(In)N
818(the)X
947(past,)X
1128(we)X
1254(have)X
1438(also)X
1599(experienced)X
2020(problems)X
2350(in)X
2444(interfacing)X
2824(large)X
3017(Common)X
3346(Lisp)X
3520(systems)X
3805(to)X
3899(other)X
4096(C-)X
720 3788(implemented)N
1160(libraries)X
1445(and)X
1583(low-level)X
1908(device)X
2140(drivers)X
2385(\320)X
2487(the)X
2607(problem)X
2896(stems)X
3099(from)X
3276(the)X
3395(dif\256culties)X
3758(in)X
3841(importing,)X
720 3884(exporting)N
1055(and)X
1199(translating)X
1565(arbitrary)X
1870(Lisp)X
2040(data)X
2202(structures)X
2542(to/from)X
2811(the)X
2938(C)X
3020(level;)X
3227(problems)X
3554(also)X
3712(arise)X
3893(from)X
4078(the)X
720 3980(explicit)N
983(control)X
1233(requirements)X
1675(of)X
1765(the)X
1886(CL)X
2011(interpreter's)X
2427(evaluator)X
2748(which)X
2966(make)X
3162(it)X
3228(dif\256cult)X
3503(to)X
3587(interface)X
3891(to)X
3975(event-)X
720 4076(driven)N
945(programs)X
1268(such)X
1435(as)X
1522(the)X
1640(X)X
1718(toolkit.)X
3 f
720 4268(6.2.)N
880(Solution:)X
1210(a)X
1270(Hybrid)X
1538(Implementation)X
1 f
720 4392(Fortunately,)N
1145(another)X
1422(class)X
1614(of)X
1717(Lisp)X
1895(application)X
2287(has)X
2430(been)X
2618(successful)X
2984(in)X
3082(a)X
3154(general)X
3427(purpose)X
3718(computational)X
720 4488(environment)N
1151(\320)X
1257(a)X
1319(hybrid)X
1554(architecture)X
1960(of)X
2053(Lisp)X
2220(and)X
2361(C)X
2439(giving)X
2668(the)X
2791(\257exibility)X
3126(of)X
3218(a)X
3279(Lisp)X
3446(system)X
3693(while)X
3896(allowing)X
720 4584(delivery)N
1013(of)X
1110(a)X
1176(relatively)X
1509(small)X
1712(and)X
1858(ef\256cient)X
2151(process.)X
2442(Under)X
2 f
2673(Unix)X
1 f
2829(,)X
2879(Richard)X
3163(Stallman)X
3477(has)X
3614(created)X
3878(a)X
3945(highly-)X
720 4680(customizable)N
1168(editor-based)X
1590(programming)X
2051(environment)X
2481(called)X
2 f
2698(GNU)X
2892(Emacs)X
1 f
3131([Stallman87])X
3574(\320)X
3678(this)X
3817(is)X
3894(a)X
3954(system)X
720 4776(that)N
862(delivers)X
1138(to)X
1222(the)X
2 f
1342(Unix)X
1 f
1520(user)X
1677(a)X
1736(text-editor)X
2093(oriented)X
2379(UI)X
2487(that)X
2630(is)X
2706(the)X
2827(foundation)X
3197(of)X
3287(the)X
3408(Lisp)X
3573(Machine)X
3877(program-)X
720 4872(ming)N
911(environment.)X
1363(Under)X
2 f
1591(MS-DOS)X
1 f
8 s
1881 4847(16)N
10 s
4872(,)Y
1992(successful)X
2349(programs)X
2679(like)X
2 f
2826(AutoCAD)X
1 f
8 s
3137 4847(17)N
10 s
3229 4872(contain)N
3493(a)X
3557(Lisp)X
3727(customization)X
720 4968(language)N
1030(embedded)X
1380(in)X
1462(a)X
1518(CAD)X
1707(program.)X
8 s
10 f
720 5048(hhhhhhhhhhhhhhhhhh)N
6 s
1 f
800 5123(14)N
8 s
880 5142(One)N
1006(of)X
1079(our)X
1184(research)X
1415(issues)X
1588(is)X
1651(how)X
1781(to)X
1851(provide)X
2067(security)X
2290(for)X
2385(systems)X
2609(that)X
2726(``open'')X
2955(to)X
3026(programmatic)X
3405(manipulation)X
3764(from)X
720 5222(outside)N
921(\320)X
1001(they)X
1127(can)X
1231(easily)X
1396(be)X
1472(infected)X
1693(with)X
1823(viruses.)X
6 s
800 5297(15)N
8 s
880 5316(One)N
1009(solution)X
1239(to)X
1312(the)X
1413(``large'')X
1647(and)X
1762(``slow'')X
1990(problems)X
2251(has)X
2359(been)X
2502(to)X
2575(create)X
2749(special)X
2949(operating)X
3213(systems)X
3439(and)X
3554(hardware)X
3814(for)X
720 5396(Lisp)N
869(\320)X
968(Lisp)X
1117(machines.)X
1424(Such)X
1586(specialized)X
1903(computers)X
2203(are)X
2314(being)X
2490(priced)X
2683(out)X
2799(of)X
2886(the)X
2998(market)X
3209(by)X
3307(general)X
3528(purpose)X
2 f
3764(Unix)X
1 f
720 5476(workstations)N
1063(using)X
1218(the)X
1312(X)X
1374(Window)X
1610(System)X
1815(and)X
1923(running)X
2138(software)X
2373(that)X
2485(is)X
2544(portable)X
2769(across)X
2944(a)X
2988(number)X
3199(of)X
3268(vendor)X
3461(platforms.)X
6 s
800 5551(16)N
2 f
8 s
880 5570(MS-DOS)N
1 f
1126(is)X
1185(a)X
1229(trademark)X
1503(of)X
1572(Microsoft)X
1840(Corporation.)X
6 s
800 5645(17)N
2 f
8 s
880 5664(AutoCAD)N
1 f
1145(is)X
1204(a)X
1248(trademark)X
1522(of)X
1591(Autodesk)X
1852(Corporation.)X
10 s
2418 6144(7)N

8 p
%%Page: 8 9
10 s 0 xH 0 xS 1 f
720 672(The)N
878(approach)X
1206(taken)X
1413(by)X
1526(such)X
1706(hybrid)X
1948(applications)X
2368(is)X
2454(that)X
2607(a)X
2676(small)X
2882(mini-Lisp)X
3230(interpreter)X
3599(serves)X
3834(to)X
3930(``glue'')X
720 768(together)N
1003(ef\256cient)X
1286(C-implemented)X
1804(primitives)X
2148(that)X
2288(make)X
2482(up)X
2582(an)X
2678(application.)X
3094(User-customization)X
3742(and)X
3878(prototyp-)X
720 864(ing)N
845(under)X
1052(such)X
1223(a)X
1283(hybrid)X
1516(system)X
1762(amounts)X
2057(to)X
2143(using)X
2340(the)X
2462(Lisp)X
2628(interpreter)X
2987(to)X
3073(recon\256gure)X
3463(C-implemented)X
3985(build-)X
720 960(ing)N
854(blocks)X
1095(in)X
1189(order)X
1391(to)X
1485(change,)X
1765(modify,)X
2048(or)X
2147(improve)X
2446(the)X
2576(functionality)X
3017(of)X
3116(the)X
3246(system.)X
3520(Such)X
3712(an)X
3820(application)X
720 1056(architecture)N
1124(follows)X
1388(the)X
1510(``80/20)X
1770(heuristics'')X
2155(for)X
2273(program)X
2569(execution)X
2905(\320)X
3009(low)X
3153(level)X
3333(routines)X
3615(that)X
3759(take)X
3917(up)X
4021(most)X
720 1152(of)N
811(the)X
933(computational)X
1415(resources)X
1743(are)X
1866(coded)X
2082(in)X
2168(C,)X
2265(and)X
2405(are)X
2528(therefore)X
2843(fast)X
2983(and)X
3123(ef\256cient)X
3410(in)X
3496(memory)X
3786(use)X
3916(\(no)X
4046(gar-)X
720 1248(bage)N
892(collections)X
1259(caused)X
1498(by)X
1598(low-level)X
1921(code\).)X
2160(The)X
2305(Lisp)X
2467(interpreter)X
2823(is)X
2897(relatively)X
3221(slow)X
3393(in)X
3476(comparison)X
3871(to)X
3954(a)X
4011(com-)X
720 1344(piled)N
902(C)X
977(program,)X
1291(but)X
1415(it)X
1481(only)X
1645(serves)X
1868(to)X
1952(\257exibly)X
2218(glue)X
2378(together)X
2663(components)X
3072(of)X
3161(the)X
3281(``outer)X
3522(loop'')X
3739(of)X
3827(a)X
3884(program.)X
720 1440(For)N
851(an)X
947(illustration)X
1313(of)X
1400(this)X
1535(hybrid)X
1764(architecture,)X
2184(see)X
2307(Figure)X
2536(2.)X
2 f
720 1564(Winterp)N
1 f
1001(solves)X
1224(the)X
1345(problems)X
1666(traditionally)X
2080(associated)X
2433(with)X
2598(Lisp)X
2763(delivery)X
3049(by)X
3152(using)X
3348(this)X
3486(hybrid)X
3718(approach)X
4036(\320)X
4140(a)X
720 1660(small,)N
939(fast,)X
1101(lightweight)X
1491(Lisp)X
1659(interpreter)X
2019(based)X
2227(on)X
2332(David)X
2553(Betz's)X
2 f
2783(Xlisp)X
1 f
2972(serves)X
3198(as)X
3290(an)X
3391(interactive,)X
3775(con\256gurable)X
720 1756(mechanism)N
1125(tying)X
1329(together)X
1632(high-level)X
1997(C-implemented)X
2535(application-speci\256c)X
3204(primitives.)X
3609(Because)X
2 f
3918(Xlisp)X
1 f
4123(is)X
720 1852(implemented)N
1162(entirely)X
1431(in)X
1517(C,)X
1614(one)X
1754(can)X
1890(simply)X
2131(use)X
2 f
2262(Xlisp)X
1 f
2426('s)X
2507(C)X
2583(library)X
2820(to)X
2905(directly)X
3173(recode)X
3411(any)X
3550(Lisp)X
3715(code)X
3890(into)X
4037(a)X
4096(C-)X
720 1948(implemented)N
1158(primitive.)X
3 f
720 2140(6.3.)N
880(Evolving)X
1201(from)X
1391(Prototype)X
1750(to)X
1837(Deliverable)X
2249(with)X
2420(Hybrid)X
2688(Programming)X
2 f
720 2264(Winterp)N
1 f
1011(supports)X
1315(an)X
1424(evolutionary)X
1862(program)X
2168(lifecycle:)X
2 f
2501(Winterp)X
1 f
2793(application)X
3183(writers)X
3440(rapidly)X
3701(prototype)X
4042(new)X
720 2360(functionality)N
1151(by)X
1253(using)X
1448(the)X
1568(interpreter)X
1925(to)X
2009(interactively)X
2432(re\256ne)X
2637(the)X
2757(layout,)X
2999(looks,)X
3214(and)X
3352(functionality)X
3782(of)X
3870(the)X
3989(appli-)X
720 2456(cation.)N
980(Once)X
1174(functionality)X
1607(has)X
1738(stabilized,)X
2089(a)X
2149(programmer)X
2570(can)X
2706(improve)X
2997(the)X
3119(application's)X
3557(ef\256ciency)X
3898(by)X
4002(reim-)X
720 2552(plementing)N
1102(the)X
1222(functionality)X
1653(in)X
1737(C)X
1812(while)X
2012(maintaining)X
2416(the)X
2536(same)X
2723(programmatic)X
3195(interface)X
3499(to)X
3583(the)X
3703(rest)X
3840(of)X
3928(the)X
4047(sys-)X
720 2648(tem.)N
886(The)X
1037(new)X
1197(primitives)X
1547(will)X
1697(then)X
1861(serve)X
2058(as)X
2152(the)X
2277(building)X
2570(blocks)X
2806(for)X
2927(the)X
3052(next)X
3217(layer)X
3405(of)X
3499(prototyping)X
3899(and)X
4042(cus-)X
720 2744(tomization.)N
1105(The)X
1253(end)X
1392(result,)X
1613(if)X
1685(designed)X
1993(carefully,)X
2322(is)X
2398(a)X
2457(relatively)X
2783(small)X
2979(and)X
3118(fast)X
3257(application)X
3636(that)X
3779(provides)X
4078(the)X
720 2840(right)N
891(set)X
1000(of)X
1087(building)X
1373(blocks)X
1602(and)X
1738(hooks)X
1949(to)X
2031(permit)X
2260(end-users)X
2588(to)X
2670(customize)X
3015(the)X
3133(look)X
3295(and)X
3431(feel)X
3572(of)X
3659(the)X
3777(application.)X
2 f
720 2964(Winterp)N
1 f
999(is)X
1073(also)X
1223(useful)X
1440(for)X
1555(rapid)X
1741(prototyping)X
2135(applications)X
2543(that)X
2684(do)X
2785(not)X
2908(need)X
3081(to)X
3165(be)X
3263(delivered)X
3584(with)X
3748(an)X
3846(embedded)X
720 3060(customization)N
1202(language.)X
1545(Systems)X
1844(with)X
2019(such)X
2198(delivery)X
2493(goals)X
2694(may)X
2864(still)X
3015(use)X
3154(the)X
3284(aforementioned)X
3820(application)X
720 3156(lifecycle.)N
1068(As)X
1188(the)X
1318(application)X
1706(matures)X
1992(and)X
2140(Lisp)X
2314(prototype)X
2653(code)X
2837(stabilizes,)X
3187(the)X
3317(program)X
3621(can)X
3765(gradually)X
4100(be)X
720 3252(recoded)N
998(entirely)X
1266(into)X
1413(C.)X
1509(Eventually,)X
1899(this)X
2037(process)X
2300(will)X
2446(allow)X
2646(a)X
2704(standard)X
2998(C-implemented)X
3518(Motif)X
3722(program)X
4016(to)X
4100(be)X
720 3348(delivered.)N
720 3472(Contrast)N
1025(this)X
1174(stepwise)X
1484(re\256nement)X
1861(from)X
2051(prototype)X
2392(to)X
2488(deliverable)X
2879(with)X
3055(the)X
3187(approach)X
3516(of)X
3617(throwing)X
3941(out)X
4078(the)X
720 3568(entire)N
926(CL-based)X
1261(prototype)X
1591(and)X
1730(starting)X
1993(from)X
2172(scratch)X
2423(in)X
2508(a)X
2567(language)X
2880(like)X
3023(C)X
3099(or)X
3189(C++.)X
3375(The)X
3523(advantages)X
3903(of)X
3992(creat-)X
720 3664(ing)N
844(deliverables)X
1254(incrementally)X
1717(via)X
1837(hybrid)X
2068(programming)X
2527(are:)X
2671(\(1\))X
2788(Existing)X
3077(regression)X
3430(tests)X
3595(may)X
3756(be)X
3855(applied)X
4114(to)X
720 3760(the)N
858(deliverable)X
1255(under)X
1478(construction,)X
1934(such)X
2121(that)X
2280(the)X
2417(effects)X
2671(of)X
2777(each)X
2964(reimplementation)X
3568(can)X
3719(be)X
3834(tested;)X
4082(\(2\))X
720 3856(Developers)N
1116(and)X
1262(alpha-testers)X
1698(can)X
1841(use)X
1979(the)X
2108(application)X
2495(being)X
2704(recoded)X
2990(for)X
3115(further)X
3365(development)X
3810(and)X
3957(further)X
720 3952(work,)N
927(thereby)X
1190(checking)X
1502(the)X
1622(impact)X
1862(of)X
1951(the)X
2071(changes)X
2352(on)X
2454(the)X
2573(usability,)X
2889(customizability,)X
3423(and)X
3560(functionality)X
3990(of)X
4078(the)X
720 4048(application.)N
3 f
720 4240(7.)N
820(An)X
942(Architecture)X
1400(for)X
1523(Extensible)X
1898(UIs)X
2038(and)X
2186(Applications)X
1 f
720 4364(The)N
874(architecture)X
1283(of)X
1379(an)X
1484(application)X
1869(built)X
2044(on)X
2153(top)X
2284(of)X
2 f
2380(Winterp)X
1 f
2667(allows)X
2905(for)X
3028(applications)X
3444(to)X
3535(be)X
3640(delivered)X
3968(with)X
4140(a)X
720 4460(variety)N
967(of)X
1058(UI)X
1167(styles.)X
1393(Such)X
1577(customizability)X
2094(is)X
2171(important)X
2506(because)X
2785(it)X
2853(is)X
2929(dif\256cult)X
3205(to)X
3290(please)X
3514(everyone)X
3832(with)X
3997(a)X
4056(sin-)X
720 4556(gle)N
840(UI)X
947(style,)X
1140(and)X
1278(because)X
1555(system)X
1799(designers)X
2124(cannot)X
2360(foresee)X
2615(all)X
2717(possible)X
3001(needs)X
3206(of)X
3296(all)X
3399(users.)X
3607(With)X
2 f
3790(Winterp)X
1 f
4048(,)X
4091(UI)X
720 4652(styles)N
926(can)X
1062(be)X
1162(speci\256ed)X
1470(via)X
2 f
1591(Winterp)X
1 f
1849(-Lisp)X
2041(``scripts'')X
2381(which)X
2600(are)X
2722(loaded)X
2959(into)X
3106(the)X
3227(application)X
3606(at)X
3687(run-time.)X
4006(Inex-)X
720 4748(perienced)N
1057(users)X
1246(can)X
1382(customize)X
1731(the)X
1853(UI)X
1962(or)X
2054(application's)X
2493(functionality)X
2927(by)X
3032(using)X
3230(``programming)X
3745(by)X
3850(example'')X
720 4844(based)N
930(on)X
1037(existing)X
1317(scripts.)X
1573(Application)X
1978(``gurus'')X
2291(may)X
2456(come)X
2657(up)X
2764(with)X
2933(new)X
3094(styles,)X
3322(merge)X
3549(features)X
3830(of)X
3923(existing)X
720 4940(styles,)N
950(add)X
1094(shortcuts)X
1411(and)X
1555 0.2604(accelerators,)AX
1988(or)X
2083(come)X
2285(up)X
2393(with)X
2564(new)X
2727(functionality.)X
3185(Such)X
3374(customizations)X
3883(are)X
4011(often)X
720 5036(distributed)N
1085(to)X
1171(others)X
1391(within)X
1619(the)X
1741(organization.)X
2186(Extensible)X
2548(applications)X
2959(like)X
3103(AutoCAD)X
3456(and)X
3596(Hypercard)X
8 s
3936 5011(18)N
10 s
4024 5036(have)N
720 5132(even)N
896(created)X
1153(an)X
1253 0.2768(``aftermarket'')AX
1756(of)X
1847(scripts)X
2080(that)X
2224(create)X
2441(new)X
2599(applications)X
3010(within)X
3238(the)X
3360(environment)X
3788(provided)X
4096(by)X
720 5228(the)N
838(extensible)X
1183(application.)X
720 5352(Figure)N
953(2)X
1017(shows)X
1241(the)X
1363(architecture)X
1767(of)X
1858(an)X
1958(extensible)X
2307(application)X
2687(in)X
2773(which)X
2 f
2993(Winterp)X
1 f
3251(-Lisp)X
3445(serves)X
3671(as)X
3763(a)X
3824(customiza-)X
720 5448(tion)N
864(script)X
1062(and)X
1198(``glue)X
1410(language'')X
1774(between)X
2062(C-implemented)X
2580(application)X
2956(and)X
3092 0.2596(user-interface)AX
3555(primitives.)X
8 s
10 f
720 5570(hhhhhhhhhhhhhhhhhh)N
6 s
1 f
800 5645(18)N
8 s
880 5664(Hypercard)N
1164(is)X
1223(a)X
1267(trademark)X
1541(of)X
1610(Apple)X
1782(Computer.)X
10 s
2418 6144(8)N

9 p
%%Page: 9 10
10 s 0 xH 0 xS 1 f
1340 2256(Figure)N
1569(2.)X
1649(Architecture)X
2071(of)X
2158(an)X
2254(extensible)X
2599(application)X
2975(based)X
3178(on)X
2 f
3278(Winterp)X
1 f
3536(.)X
3 f
720 2352(8.)N
820(Winterp)X
1129(Features)X
720 2544(8.1.)N
880(Xlisp)X
2 f
720 2668(Winterp)N
1 f
1001(uses)X
2 f
1162(Xlisp)X
1 f
1349([Betz89])X
1653(because)X
1931(it)X
1998(is)X
2074(reliable,)X
2358(small,)X
2575(fast,)X
2735(and)X
2875(free.)X
2 f
3065(Xlisp)X
1 f
3253(has)X
3384(been)X
3560(around)X
3807(since)X
3996(1985,)X
720 2764(and)N
865(has)X
1001(evolved)X
1284(considerably)X
1723(since)X
1917(it)X
1990(\256rst)X
2143(appeared)X
2463(publicly.)X
2774(Because)X
3071(it)X
3144(has)X
3280(been)X
3461(in)X
3552(widespread)X
3947(use)X
4082(for)X
720 2860(some)N
911(time,)X
1095(most)X
1272(bugs)X
1445(have)X
1619(been)X
1793(shaken)X
2038(out)X
2162(of)X
2251(the)X
2371(system.)X
2655(Also,)X
2848(the)X
2968(newsgroup)X
3342(comp.lang.lisp.x)X
3895(has)X
4024(been)X
720 2956(an)N
819(effective)X
1124(public)X
1347(channel)X
1620(for)X
1737(exchanging)X
2130(information)X
2531(and)X
2670(patches.)X
2 f
2973(Xlisp)X
1 f
3159(was)X
3306(designed)X
3613(to)X
3697(be)X
3795(run)X
3924(on)X
4026(PCs;)X
720 3052(because)N
996(it)X
1061(was)X
1207(designed)X
1513(with)X
1676(a)X
1733(limited)X
1980(environment)X
2406(in)X
2490(mind,)X
2696(it)X
2762(has)X
2891(turned)X
3118(out)X
3242(to)X
3326(be)X
3424(quite)X
3606(fast)X
3744(and)X
3882(memory-)X
720 3148(ef\256cient)N
1012(while)X
1219(remaining)X
1573(portable)X
1865(across)X
2095(a)X
2160(variety)X
2411(of)X
2506(architectures)X
2945(ranging)X
3218(from)X
3402(16)X
3510(bit)X
3622(PC's)X
3805(to)X
3895(worksta-)X
720 3244(tions.)N
2 f
939(Xlisp)X
1 f
1103('s)X
1185(simple)X
1422(object)X
1642(system)X
1889(has)X
2021(enabled)X
2296(an)X
2397(elegant)X
2654(interface)X
2961(to)X
3048(the)X
3171(object)X
3392(oriented)X
3680(structure)X
3986(of)X
4078(the)X
720 3340(Xtoolkit)N
1006(and)X
1142(the)X
1260(Motif)X
1462(widgets.)X
1771(Finally,)X
2 f
2037(Xlisp)X
1 f
2221(is)X
2294(free,)X
2460(thanks)X
2689(to)X
2771(the)X
2889(generosity)X
3243(of)X
3330(David)X
3546(Betz.)X
3 f
720 3532(8.2.)N
880(Motif)X
1092(Widgets)X
1392(are)X
1524(First-Class)X
1918(Objects)X
2 f
720 3656(Winterp)N
1 f
999(uses)X
2 f
1158(Xlisp)X
1 f
1322('s)X
1401(Smalltalk-like)X
1875(object)X
2093(system)X
2337([Betz89])X
2640(as)X
2729(its)X
2826(interface)X
3130(to)X
3214(the)X
3334(class)X
3512(hierarchy)X
3838(of)X
3927(widgets)X
720 3752(provided)N
1033(by)X
1141(Motif.)X
1390(Speci\256cally,)X
1815(each)X
1990(Motif)X
2199(widget)X
2444(class)X
2627(is)X
2707(represented)X
3105(by)X
3212(one)X
3355(or)X
3449(more)X
3641(object)X
3864(classes)X
4114(in)X
2 f
720 3848(Winterp)N
1 f
978(.)X
1040(A)X
1120(wide)X
1298(range)X
1499(of)X
1588(UI)X
1695(objects)X
1944(are)X
2065(provided.)X
2392(Simple)X
2640(widgets)X
2911(include)X
3170(text)X
3313(or)X
3403(pixmap)X
3666(labels,)X
3896(pushbut-)X
720 3944(tons,)N
895(toggle)X
1117(buttons)X
1373(as)X
1461(well)X
1620(as)X
1708(scrollbars)X
2041(and)X
2178(scale)X
2360(valuators.)X
2695(More)X
2890(complex)X
3187(widgets)X
3457(include)X
3714(a)X
3771(text)X
3912(editor,)X
4140(a)X
720 4040(\256le)N
842(browser,)X
1141(and)X
1277(a)X
1334(list)X
1452(browser.)X
1752(Motif)X
1955(includes)X
2243(manager)X
2541(widgets)X
2811(that)X
2952(manage)X
3223(the)X
3342(geometries)X
3715(of)X
3803(other)X
3989(widg-)X
720 4136(ets)N
842(via)X
973(constraints,)X
1373(row/column)X
1793(placement,)X
2176(or)X
2275(menu)X
2485(layout.)X
2757(Shell)X
2953(and)X
3101(dialog)X
3333(widgets)X
3614(provide)X
3891(top-level)X
720 4232(windows)N
1031(that)X
1173(talk)X
1315(to)X
1399(the)X
1519(window)X
1799(manager.)X
2118(Other)X
2323(widgets)X
2594(that)X
2736(are)X
2858(or)X
2948(will)X
3095(be)X
3194(available)X
3507(in)X
3592(the)X
3713(public)X
3936(domain)X
720 4328(or)N
826(through)X
1114(various)X
1389(software)X
1704(suppliers)X
2031(include)X
2305(table)X
2499(layout)X
2737(managers,)X
3103(directed-graph)X
3610(layout)X
3848(managers,)X
720 4424(graphical)N
1039(gauges,)X
1302(plotting)X
1570(and)X
1706(line)X
1846(graphics)X
2138(widgets,)X
2427(etc.)X
2 f
720 4548(Xlisp)N
1 f
913(classes)X
1165(describe)X
1462(the)X
1589(type)X
1756(of)X
1852(a)X
1917(particular)X
2255(object)X
2481(by)X
2591(declaring)X
2920(a)X
2986(set)X
3105(of)X
3202(variables)X
3522(held)X
3690(in)X
3782(each)X
3960(object.)X
720 4644(These)N
2 f
942(instance)X
1239(variables)X
1 f
1567(may)X
1735(only)X
1907(be)X
2013(accessed)X
2324(by)X
2 f
2433(methods)X
1 f
2729(that)X
2878(respond)X
3161(to)X
2 f
3252(messages)X
1 f
3584(sent)X
3742(to)X
3833(the)X
3960(object.)X
720 4740(Methods)N
1022(are)X
1143(de\256ned)X
1401(for)X
1517(particular)X
1847(classes,)X
2112(and)X
2250(functionality)X
2682(of)X
2772(other)X
2960(classes)X
3206(may)X
3367(be)X
3466(incorporated)X
3895(into)X
4042(new)X
720 4836(classes)N
967(via)X
2 f
1089(inheritance)X
1 f
1454(.)X
1518(From)X
2 f
1715(Xlisp)X
1 f
1879(,)X
1922(Motif)X
2127(widget)X
2368(classes)X
2614(and)X
2753(instances)X
3070(look)X
3235(just)X
3373(like)X
3516(normal)X
2 f
3766(Xlisp)X
1 f
3953(classes)X
720 4932(and)N
860(instances,)X
1198(meaning)X
1498(that)X
1643(one)X
1784(can)X
1921(add)X
2062(new)X
2221(methods)X
2517(or)X
2609(override)X
2902(old)X
3029(ones,)X
3221(possibly)X
3512(using)X
3710(polymorphism)X
720 5028(to)N
811(exploit)X
1062(similarities)X
1446(between)X
1743(types)X
1941(despite)X
2197(different)X
2503(implementations.)X
3085(Type)X
3278(inheritance)X
3663(and)X
3807(subclassing)X
720 5124(are)N
842(available)X
1155(to)X
1240(specialize)X
1580(existing)X
1856(widget)X
2097(classes.)X
2383(The)X
2531(result)X
2732(is)X
2809(that)X
2 f
2953(Winterp)X
1 f
3235(provides)X
3535(a)X
3595(very)X
3762(clean)X
3956(way)X
4114(to)X
720 5220(interactively)N
1156(rapid-prototype)X
1690(an)X
1801(application,)X
2212(while)X
2425(also)X
2589(providing)X
2935(mechanisms)X
3365(for)X
3493(code)X
3679(structuring)X
4060(and)X
720 5316(reuse.)N
956(The)X
1107(latter)X
1298(is)X
1377(necessary)X
1716(in)X
1805(evolving)X
2112(from)X
2295(prototype)X
2629(to)X
2718(a)X
2781(structured,)X
3149(maintainable,)X
3610(and)X
3753(customizable)X
720 5412(deliverable.)N
2418 6144(9)N

10 p
%%Page: 10 11
10 s 0 xH 0 xS 1 f
3 f
720 672(8.3.)N
880(Open)X
1086(Application)X
1505(Architecture)X
2 f
720 796(Winterp)N
1 f
999(promotes)X
1318(an)X
1415(open,)X
1612(extensible)X
1958(architecture)X
2359(for)X
2474(applications)X
2883(because)X
3160(designers)X
3485(cannot)X
3721(foresee)X
3976(all)X
4078(the)X
720 892(possible)N
1002(needs)X
1205(of)X
1292(the)X
1410(end-user.)X
1727(In)X
1814(addition)X
2096(to)X
2178(being)X
2376(open)X
2552(to)X
2634(the)X
2752(application)X
3128(customizer,)X
2 f
3520(Winterp)X
1 f
3798(is)X
3871(also)X
4020(open)X
720 988(to)N
803(systems)X
1077(integration)X
1445(in)X
1528(which)X
1745(applications)X
2153(must)X
2329(work)X
2515(together)X
2799(with)X
2962(other)X
3149(applications)X
3558(running)X
3829(on)X
3931(the)X
4051(net-)X
720 1084(work.)N
2 f
925(Winterp)X
1 f
1203(enables)X
1464(such)X
1631(integration)X
1998(because)X
2273(its)X
2368(language)X
2678(interpreter)X
3033(is)X
3106(implemented)X
3544(as)X
3631(a)X
3687(server.)X
720 1208(Thus,)N
928(all)X
2 f
1036(Winterp)X
1 f
1294(-based)X
1532(applications)X
1947(have)X
2127(a)X
2192(built-in,)X
2476(extensible)X
2830(remote)X
3082(procedure)X
3433(call)X
3578(\(RPC\))X
3811(mechanism)X
720 1304(which)N
946(allows)X
1185(other)X
1380(applications,)X
1817(possibly)X
2113(running)X
2392(non-locally,)X
2807(to)X
2899(send)X
3076(commands)X
3453(to)X
3545(execute)X
3820(application)X
720 1400(functionality.)N
1199(Such)X
1389(an)X
1495(architecture)X
1905(allows)X
2144(applications)X
2561(to)X
2653(talk)X
2804(to)X
2897(each)X
3076(other,)X
3292(share)X
3493(data,)X
3678(etc.)X
3823(The)X
3979(server)X
720 1496(con\256guration)N
1168(can)X
1301(be)X
1398(speci\256ed)X
1704(via)X
1823(Xresources,)X
2225(allowing)X
2525(the)X
2643(user)X
2797(of)X
2884(WINTERP)X
3260(or)X
3347(a)X
3403(WINTERP-based)X
3989(appli-)X
720 1592(cation)N
936(to)X
1018(enable/disable)X
1497(Unix-Domain)X
1962(or)X
2049(Inet-Domain)X
2479(server)X
2696(sockets.)X
720 1716(Figure)N
953(3)X
1017(shows)X
1241(a)X
1301(diagram)X
1588(of)X
2 f
1679(Winterp)X
1 f
1937('s)X
2019(server)X
2240(architecture.)X
2664(Both)X
2843(local)X
3023(and)X
3163(remote)X
3410(applications)X
3821(can)X
3958(invoke)X
720 1812(remote)N
968(procedure)X
1315(calls)X
1487(in)X
2 f
1574(Winterp)X
1 f
1832(-based)X
2067(applications.)X
2499(Programmatic)X
2978(changes)X
3262(can)X
3399(be)X
3499(sent)X
3652(to)X
2 f
3738(Winterp)X
1 f
4020(from)X
720 1908(the)N
2 f
838(Unix)X
1 f
1015(command)X
1352(shell)X
1524(and)X
1661(shell)X
1833(scripts)X
2063(via)X
2182(a)X
2239(simple)X
2473(client)X
2672(program,)X
8 f
3013(wl)X
1 f
(,)S
3150(which)X
3367(is)X
3441(included)X
3738(with)X
3901(the)X
2 f
4020(Win-)X
720 2004(terp)N
1 f
882(distribution.)X
1323(For)X
1467(example,)X
1792(a)X
1861(user-de\256ned)X
2291(function)X
8 f
2619(start-application)X
1 f
3468(may)X
3639(be)X
3748(called)X
3972(within)X
2 f
720 2100(Winterp)N
1 f
998(by)X
1098(executing)X
1430(the)X
1548(following)X
2 f
1879(Unix)X
1 f
2055(command:)X
8 f
1104 2244(wl)N
1248('\(start-application\)')X
1 f
1314 5366(Figure)N
1543(3.)X
1623(Inter-application)X
2178(communications)X
2727(via)X
2 f
2845(Winterp)X
1 f
3103('s)X
2 f
3181(Xlisp)X
1 f
3365(server.)X
2398 6144(10)N

11 p
%%Page: 11 12
10 s 0 xH 0 xS 1 f
3 f
720 672(8.4.)N
880(``What)X
1145(you)X
1289(program)X
1612(is)X
1685(what)X
1874(you)X
2018(see'')X
1 f
720 796(The)N
2 f
871(GNU)X
1066(Emacs)X
1 f
1306(editor)X
1520(provides)X
1823(an)X
1926(elegant)X
2185(environment)X
2617(for)X
2738(writing)X
2996(and)X
3139(formatting)X
8 s
3477 771(19)N
2 f
10 s
3568 796(Winterp)N
1 f
3853(programs.)X
720 892(The)N
2 f
876(Winterp)X
1 f
1165(distribution)X
1564(contains)X
1862(an)X
1969(extension)X
2307(to)X
2400(Emacs')X
2672(Lisp-mode)X
3049(whereby)X
3356(an)X
3462(Emacs)X
3706(command)X
4052(will)X
720 988(send)N
892(the)X
1015(current)X
1268(Lisp)X
1435(form)X
1616(being)X
1819(edited)X
2040(to)X
2 f
2128(Winterp)X
1 f
2412(for)X
2532(evaluation.)X
2932(This)X
3100(allows)X
3335(truly)X
3512(interactive)X
3877(program-)X
720 1084(ming)N
911(because)X
1192(one)X
1334(need)X
1512(not)X
1640(exit)X
1786(the)X
1910(editor)X
2123(to)X
2211(see)X
2340(the)X
2464(results)X
2699(of)X
2792(evaluating)X
3152(a)X
3214(code)X
3392(fragment;)X
3730(with)X
2 f
3898(Winterp)X
1 f
4156(,)X
720 1180(one)N
865(can)X
1006(see)X
1138(the)X
1266(graphical)X
1595(results)X
1834(of)X
1931(interactive)X
2300(changes)X
2589(to)X
2681(a)X
2747(program)X
3049(immediately.)X
3499(Note)X
3685(that)X
2 f
3835(Winterp)X
1 f
4123(is)X
720 1276(architecturally)N
1208(separate)X
1496(from)X
1675(the)X
2 f
1796(GNU)X
1988(Emacs)X
1 f
2225(editor)X
2435(\(see)X
2588(Figure)X
2820(3\))X
2910(\320)X
3013(interfaces)X
3349(to)X
3434(other)X
3622(editors)X
3863(are)X
3985(possi-)X
720 1372(ble,)N
858(but)X
980(are)X
1099(not)X
1221(provided)X
1526(in)X
1608(the)X
1726(current)X
2 f
1974(Winterp)X
1 f
2252(distribution.)X
720 1496(Non-Emacs)N
1122(users)X
1310(may)X
1471(\256nd)X
1618(an)X
1717(example)X
2013(program)X
2309(in)X
2395(the)X
2 f
2517(Winterp)X
1 f
2799(distribution)X
3191(useful)X
3411(for)X
3529(interactively)X
3954(editing)X
720 1592(and)N
992(evaluating)X
1482(code)X
1790(with)X
2088(the)X
2341(Motif)X
2678(text)X
2953(editor)X
3295(widget.)X
3688(By)X
3936(loading)X
8 f
720 1688(winterp/examples/w_ctrlpnl.lsp)N
1 f
2185(into)X
2 f
2334(Winterp)X
1 f
2592(,)X
2637(a)X
2699(window)X
2983(will)X
3133(pop)X
3279(up)X
3385(providing)X
3722(a)X
3784(rudimentary)X
720 1784(editor,)N
947(\256le)X
1069(browser,)X
1368(and)X
1504(control)X
1751(panel)X
1945(for)X
2059(the)X
2177(system.)X
2439(The)X
2584(control)X
2831(panel)X
3025(contains)X
3312(buttons)X
3567(that)X
3707(control)X
2 f
3954(Xlisp)X
1 f
4118('s)X
720 1880(debugger)N
1043(and)X
1183(error)X
1364(backtrace,)X
1717(as)X
1808(well)X
1970(as)X
2061(controls)X
2343(to)X
2429(load)X
2592(\256les,)X
2770(edit)X
2915(\256les,)X
3093(and)X
3234(evaluate)X
3527(the)X
3650(Lisp)X
3817(form)X
3998(being)X
720 1976(edited.)N
3 f
720 2168(8.5.)N
880(Automatic)X
1261(Resource)X
1598(Conversions)X
1 f
720 2292(In)N
2 f
817(Winterp)X
1 f
1075(,)X
1125(any)X
1271(Motif)X
1483(resource)X
1786(that)X
1937(can)X
2080(be)X
2187(represented)X
2589(in)X
2682(the)X
2811(X)X
2900(resource)X
3204(manager)X
3512(\(i.e.)X
3668(one)X
3815(can)X
3958(set)X
4078(the)X
720 2388(resource)N
1025(via)X
1155(.Xdefaults\))X
1546(can)X
1690(be)X
1798(speci\256ed)X
2115(as)X
2213(a)X
2280(Lisp)X
2453(string,)X
2686(and)X
2833(it)X
2908(will)X
3063(automatically)X
3530(be)X
3637(converted)X
3985(to)X
4078(the)X
720 2484(appropriate)N
1111(type.)X
1294(This)X
1461(is)X
1539(especially)X
1885(useful)X
2106(for)X
2225(automatically)X
2686(converting)X
3054(strings)X
3292(to)X
3379(XmStrings.)X
3771(Other)X
3980(useful)X
720 2580(conversions)N
1135(include)X
1403(converting)X
1778(color)X
1975(names)X
2212(to)X
2306(type)X
8 f
2504(Pixel)X
1 f
(,)S
2796(and)X
2944(converting)X
3319(bitmap)X
3573(\256le)X
3707(names)X
3944(to)X
4038(type)X
8 f
720 2676(Pixmap)N
1 f
(.)S
3 f
720 2868(8.6.)N
880(Interpreted)X
1297(Callbacks)X
1 f
720 2992(Xtoolkit)N
1014(callbacks,)X
1361(event-handlers,)X
1882(timeouts,)X
2205(translations,)X
2622(and)X
2766 0.2841(accelerators)AX
3180(are)X
3308(seamlessly)X
3684(integrated)X
4034(with)X
2 f
720 3088(Winterp)N
1 f
1004(\320)X
1110(Xevents)X
1399(can)X
1537(cause)X
1742(arbitrary)X
2045(code)X
2223(\(both)X
2417(Lisp)X
2584(and)X
2725(C\))X
2830(to)X
2917(be)X
3018(executed.)X
3349(\(See)X
3517(the)X
3640(example)X
3937(code)X
4114(in)X
720 3184(the)N
838(next)X
996(section)X
1243(for)X
1357(details.\))X
720 3308(For)N
861(Xtoolkit)X
1157(translations)X
1556(and)X
1702 0.2604(accelerators,)AX
2 f
2137(Winterp)X
1 f
2425(includes)X
2723(a)X
2790(special)X
3044(action)X
3271(procedure)X
8 f
3652(Lisp\(\))X
1 f
3971(whose)X
720 3404(arguments)N
1094(are)X
1233(evaluated)X
1581(as)X
1688(a)X
1764(Lisp)X
1946(function)X
2253(call.)X
2429(For)X
2580(example,)X
2912(the)X
3050(following)X
3400(Xtoolkit)X
3705(translation-)X
4109(or)X
720 3500 0.2578(accelerator-table)AN
1281(entry)X
8 s
1446 3475(20)N
10 s
1534 3500(will)N
1682(cause)X
1885(the)X
2007(application-de\256ned)X
2650(function)X
8 f
2969(ctrl-A-hit)X
1 f
3474(to)X
3561(be)X
3662(called)X
3879(when)X
4078(the)X
720 3596(key)N
856(sequence)X
1171(CTRL-A)X
1480(is)X
1553(entered)X
1810(on)X
1910(the)X
2028(widget:)X
8 f
1104 3740("Ctrl<Key>A:)N
1728(Lisp\(ctrl-A-hit)X
2496(ACTION_WIDGET)X
3168(ACTION_XEVENT\)")X
1 f
720 3912(The)N
872(symbol)X
8 f
1162(ACTION_WIDGET)X
1 f
1813(above)X
2032(is)X
2112(bound)X
2339(to)X
2428(the)X
2553(widget-object)X
3021(that)X
3168(caused)X
3414(the)X
3540(action)X
3764(procedure)X
4114(to)X
720 4008(\256re,)N
881(and)X
8 f
1059(ACTION_XEVENT)X
1 f
1716(is)X
1802(bound)X
2035(to)X
2130(the)X
2261(XEvent-object)X
2762(that)X
2915(matched)X
3220(the)X
3351(translation)X
3722(or)X
3822 0.3250(accelerator)AX
720 4104(entry.)N
945(These)X
1157(values)X
1382(are)X
1501(then)X
1659(passed)X
1893(as)X
1980(arguments)X
2334(to)X
2416(function)X
8 f
2731(ctrl-A-hit)X
1 f
(.)S
3 f
720 4296(8.7.)N
880(Automatic)X
1261(Memory)X
1576(Management)X
2 f
720 4420(Xlisp)N
1 f
884('s)X
962(garbage)X
1237(collector)X
1538(has)X
1665(been)X
1837(extended)X
2147(to)X
2229(reclaim)X
2490(unused)X
2737(X,)X
2835(Xtoolkit,)X
3141(and)X
3277(Motif)X
3479(storage)X
3731(\320)X
3831(this)X
3967(allows)X
720 4516(programmers)N
1182(to)X
1278(concentrate)X
1683(on)X
1797(the)X
1929(UI)X
2048(and)X
2198(application)X
2588(functionality,)X
3051(rather)X
3273(than)X
3445(memory)X
3746(management.)X
720 4612(Memory)N
1016(management)X
1446(is)X
1519(one)X
1655(of)X
1743(the)X
1862(pitfalls)X
2105(that)X
2246(complicates)X
2650(X)X
2729(programming)X
3186(in)X
3269(C)X
3343(\320)X
3444(novices)X
3710(have)X
3883(dif\256culty)X
720 4708(in)N
807(determining)X
1219(the)X
1342(lifetime)X
1616(of)X
1708(objects)X
1960(in)X
2047(X)X
2130(and)X
2271(the)X
2394(Xtoolkit,)X
2704(resulting)X
3008(in)X
3094(hard-to)X
3350(debug)X
3570(program)X
3866(crashes)X
4127(if)X
720 4804(objects)N
969(are)X
1090(freed)X
1278(too)X
1402(early,)X
1605(or)X
1694(subtle)X
1907(memory)X
2196(leaks)X
2383(if)X
2454(objects)X
2703(are)X
2825(not)X
2950(freed)X
3139(at)X
3220(all.)X
3343(In)X
2 f
3433(Winterp)X
1 f
3691(,)X
3734(memory)X
4024(need)X
720 4900(not)N
851(be)X
955(managed)X
1273(explicitly,)X
1623(since)X
1816(Lisp's)X
2044(garbage)X
2327(collection)X
2671(automatically)X
3135(frees)X
3320(up)X
3428(any)X
3572(memory)X
3867(that)X
4015(is)X
4096(no)X
720 4996(longer)N
945 0.4028(referenced)AX
1306(by)X
1406(the)X
1524(system.)X
720 5120(In)N
820(particular,)X
2 f
1181(Xlisp)X
1 f
1345('s)X
1436(garbage)X
1724(collector)X
2038(has)X
2178(been)X
2363(extended)X
2687(to)X
2783(reclaim)X
3058(storage)X
3324(associated)X
3688(with)X
3864(destroyed)X
720 5216(widget)N
964(objects,)X
1236(along)X
1439(with)X
1606(any)X
1747(toolkit-internal)X
2252(storage)X
2509(associated)X
2864(with)X
3031(these)X
3221(widget)X
3464(objects.)X
3736(Such)X
3921(garbage)X
720 5312(collection)N
1056(occurs)X
1286(for)X
1400(callbacks,)X
1739(event-handlers,)X
2252(timeouts,)X
2567(XmStrings,)X
2953(and)X
3089(XmStringTables.)X
8 s
10 f
720 5396(hhhhhhhhhhhhhhhhhh)N
6 s
1 f
800 5471(19)N
8 s
880 5490(Emacs')N
1087(Lisp-mode)X
1380(will)X
1496(automatically)X
1860(indent)X
2036(one's)X
2190(code)X
2326(and)X
2434(help)X
2560(catch)X
2710(unmatched)X
3006(parentheses.)X
6 s
800 5565(20)N
8 s
880 5584(A)N
946(translation/accelerator)X
1532(entry)X
1683(may)X
1813(be)X
1894(speci\256ed)X
2142(in)X
2213(an)X
2294(X)X
2361(resource)X
2597(\256le,)X
2716(e.g.)X
2829(.Xdefaults,)X
3130(or)X
3204(may)X
3335(be)X
3416(set)X
3508(directly)X
3724(within)X
2 f
720 5664(Winterp)N
1 f
926(.)X
10 s
2398 6144(11)N

12 p
%%Page: 12 13
10 s 0 xH 0 xS 1 f
720 672(Garbage)N
1015(collection)X
1353(of)X
1442(pixmaps)X
1735(in)X
2 f
1819(Winterp)X
1 f
2099(is)X
2175(especially)X
2519(useful)X
2738(because)X
3016(we)X
3133(can)X
3268(expect)X
3501(pixmaps)X
3795(to)X
3880(take)X
4037(up)X
4140(a)X
720 768(reasonable)N
1088(amount)X
1352(of)X
1443(client)X
1645(and)X
1785(server)X
2005(space)X
2207(in)X
2292(typical)X
2533(graphic/iconic)X
3015(Motif)X
3220(applications.)X
2 f
3650(Winterp)X
1 f
3931(extends)X
720 864(Motif's)N
998 0.4531(reference)AX
1337(counting)X
1655(and)X
1809(pixmap)X
2087(caching)X
2376(scheme)X
2656(to)X
2757(work)X
2961(with)X
3142(garbage)X
3436(collection.)X
3811(Server)X
4060(and)X
720 960(client-side)N
1084(storage)X
1346(associated)X
1705(with)X
1876(a)X
1941(pixmap)X
2210(will)X
2363(get)X
2490(reclaimed)X
2836(when)X
3039(no)X
3148 0.3889(references)AX
3509(to)X
3600(them)X
3789(exist)X
3969(in)X
4060(any)X
720 1056(widget-object)N
1181(or)X
1268(other)X
2 f
1453(Winterp)X
1 f
1731(variable.)X
3 f
720 1248(8.8.)N
880(Programming)X
1381(by)X
1485(Direct)X
1720(Manipulation)X
1 f
720 1372(The)N
872(current)X
1127(release)X
1378(of)X
2 f
1472(Winterp)X
1 f
1757(includes)X
2051(a)X
2114(primitive)X
2434(which)X
2657(allows)X
2893(for)X
3014(``programming)X
3532(by)X
3640(direct)X
3851(manipula-)X
720 1468(tion.'')N
944(When)X
1162(one)X
1304(is)X
1383(interactively,)X
1830(programmatically)X
2426(modifying)X
2785(a)X
2847(user)X
3007(interface,)X
3335(one)X
3477(often)X
3668(wants)X
3881(to)X
3968(send)X
4140(a)X
720 1564(message)N
1024(to)X
1118(a)X
1186(widget-object)X
1659(without)X
1935(knowing)X
2247(it's)X
2381(``name'')X
2695(or)X
2794(the)X
2924(symbol)X
3191(to)X
3285(which)X
3513(the)X
3643(widget)X
3894(object)X
4123(is)X
720 1660(bound.)N
961(The)X
1107(primitive)X
8 f
1449(get_moused_widget)X
1 f
2285(allows)X
2514(messages)X
2837(to)X
2919(be)X
3015(passed)X
3249(to)X
3331(any)X
3467(widget-object)X
3928(one)X
4064(can)X
720 1756(point)N
905(the)X
1024(mouse)X
1254(at.)X
1353(Developers)X
1740(may)X
1899(use)X
2027(this)X
2163(for)X
2278(rapid)X
2464(prototyping)X
2858(\320)X
2959(they)X
3118(can)X
3251(immediately)X
3672(see)X
3797(the)X
3917(changes)X
720 1852(they)N
885(are)X
1011(making)X
1278(to)X
1367(the)X
1492(UI.)X
1624(Users)X
1834(may)X
1999(customize)X
2350(delivered)X
2 f
2675(Winterp)X
1 f
2933(-based)X
3169(applications)X
3582(by)X
3688(simply)X
3931(``point-)X
720 1948(ing'')N
896(at)X
974(the)X
1092(widgets)X
1361(they)X
1519(wish)X
1690(to)X
1772(change)X
2020(\320)X
2120(colors,)X
2356(fonts,)X
2556(sizes,)X
2753(callbacks,)X
3093(and)X
3230(other)X
3416(such)X
3584(widget)X
3823(parameters)X
720 2044(may)N
878(be)X
974(changed)X
1262(on)X
1362(the)X
1480(\257y.)X
8 f
720 2168(get_moused_widget)N
1 f
1566(may)X
1734(also)X
1893(be)X
1999(used)X
2176(to)X
2268(implement)X
2640(an)X
2746(interactive,)X
3135(direct)X
3349(manipulation)X
3802(builder)X
4060(and)X
720 2264(resource)N
1016(editor)X
1226(application)X
1605(on)X
1708(top)X
1833(of)X
2 f
1923(Winterp)X
1 f
2181(.)X
2223(Other)X
2428(direct)X
2633(manipulation)X
3077(primitives)X
3423(are)X
3544(being)X
3744(considered)X
4114(to)X
720 2360(allow)N
918(widgets)X
1187(to)X
1269(be)X
1365(placed)X
1595(or)X
1682(moved)X
1920(interactively.)X
3 f
720 2552(8.9.)N
880(Extensibility)X
2 f
720 2676(Winterp)N
1 f
1006(is)X
1087(not)X
1217(a)X
1281(closed)X
1514(system.)X
1784(Hybrid)X
2039(programming)X
2503(with)X
2 f
2673(Xlisp)X
1 f
2866(makes)X
3100(it)X
3173(straightforward)X
3697(to)X
3788(add)X
3933(new)X
4096(C-)X
720 2772(implemented)N
1165(widgets)X
1441(to)X
1530(the)X
1655(system)X
1904(so)X
2002(that)X
2149(they)X
2314(can)X
2453(be)X
2556(accessed)X
2865(via)X
2989(the)X
3113(interpreter.)X
3494(It)X
3569(is)X
3648(also)X
3803(easy)X
3972(to)X
4060(add)X
720 2868(special)N
968(Xlib-level)X
1318(primitives)X
1668(to)X
2 f
1756(Winterp)X
1 f
2040(in)X
2128(order)X
2324(to)X
2412(implement)X
2780(functionality)X
3215(not)X
3343(available)X
3659(via)X
3783(the)X
3907(widgets.)X
720 2964(The)N
865(same)X
1050(goes)X
1217(for)X
1331(interfaces)X
1664(to)X
1746(special)X
2 f
1989(Unix)X
1 f
2165(device)X
2395(drivers,)X
2658(etc.)X
720 3088(Simple)N
969(widgets)X
1241(\(such)X
1438(as)X
1528(a)X
1588(pushbutton\))X
1994(can)X
2130(be)X
2230(interfaced)X
2576(with)X
2742(about)X
2944(10)X
3048(lines)X
3223(of)X
3314(C)X
3391(code,)X
3587(which)X
3807(needs)X
4014(to)X
4100(be)X
720 3184(linked)N
946(in)X
1034(to)X
1122(the)X
1246(rest)X
1388(of)X
1481(system.)X
1749(More)X
1949(complex)X
2251(widgets)X
2526(\(such)X
2726(as)X
2819(a)X
2881(text)X
3027(or)X
3120(graph)X
3329(editor\))X
3569(are)X
3694(added)X
3911(with)X
4078(the)X
720 3280(same)N
907(techniques)X
1272(as)X
1362(used)X
1532(by)X
1635(simple)X
1871(widgets.)X
2183(However,)X
2521(if)X
2593(such)X
2763(widgets)X
3035(provide)X
3303(a)X
3362(number)X
3630(of)X
3720(``convenience)X
720 3376(functions'')N
1093(\(methods\),)X
1458(then)X
1616(each)X
1784(convenience)X
2206(function)X
2493(will)X
2637(need)X
2809(to)X
2891(be)X
2987(interfaced)X
3329(to)X
3411(Lisp.)X
3593(Each)X
3774(convenience)X
720 3472(function)N
1011(interface)X
1317(usually)X
1572(takes)X
1761(about)X
1963(5-10)X
2134(lines)X
2309(of)X
2400(C)X
2477(code.)X
2673(Such)X
2857(C-level)X
3117(interfacing)X
3489(of)X
3580(convenience)X
4006(func-)X
720 3568(tions)N
905(and)X
1051(widgets)X
1330(is)X
1413(simple)X
1656(because)X
1940(most)X
2124(of)X
2220(it)X
2293(amounts)X
2593(to)X
2684(programming)X
3149(via)X
3276(example)X
3577(\(``cut)X
3785(and)X
3930(paste''\))X
720 3664(from)N
896(existing)X
1169(code.)X
720 3788(Widgets)N
1012(requiring)X
1331(new)X
1491(resource)X
1790(representations)X
2302(can)X
2440(be)X
2542(added)X
2760(as)X
2853(well.)X
3037(To)X
3152(achieve)X
3424(this,)X
3585(one)X
3727(needs)X
3936(to)X
4024(code)X
720 3884(Lisp-to-resource)N
1276(converters,)X
1656(or)X
1748(simply)X
1990(use)X
2122(the)X
2245(String-to-Resource)X
2880(converters)X
3240(required)X
3533(to)X
3620(make)X
3818(such)X
3989(widg-)X
720 3980(ets)N
829(work)X
1014(with)X
1176(the)X
1294(X)X
1372(resource)X
1665(database.)X
3 f
720 4172(9.)N
820(Example)X
1142(Use)X
1 f
720 4296(In)N
808(the)X
927(following)X
1259(code,)X
1452(we)X
1567(will)X
1712(\256rst)X
1857(step)X
2007(through)X
2277(some)X
2467(simple)X
2 f
2701(Winterp)X
1 f
2980(code)X
3153(that)X
3294(will)X
3439(allow)X
3638(us)X
3730(to)X
3814(create)X
4029(win-)X
720 4392(dows,)N
935(put)X
1063(widgets)X
1338(inside)X
1555(those)X
1750(windows)X
2065(and)X
2207(attach)X
2425(callbacks)X
2750(to)X
2838(execute)X
3110(code)X
3287(when)X
3486(a)X
3547(particular)X
3880(widget)X
4123(is)X
720 4488(activated)N
1034(via)X
1156(X)X
1238(input.)X
1446(Afterwards,)X
1852(we)X
1970(will)X
2118(take)X
2276(some)X
2469(of)X
2560(concepts)X
2865(from)X
3045(the)X
3167(example)X
3463(code)X
3640(and)X
3781(apply)X
3984(it)X
4053(to)X
4140(a)X
720 4584(real)N
861(application)X
1237(\320)X
1337(a)X
1393(bitmap)X
1635(browser.)X
3 f
720 4776(9.1.)N
880(Introduction)X
1335(to)X
1422(Xlisp)X
1619(Syntax)X
1 f
720 4900(First,)N
907(we)X
1022(shall)X
1194(introduce)X
1518(a)X
1575(few)X
1717(rudimentary)X
2131(aspects)X
2385(of)X
2 f
2474(Winterp)X
1 f
2754(programming)X
3212(and)X
2 f
3350(Xlisp)X
1 f
3536(syntax)X
3767(for)X
3883(those)X
4074(not)X
720 4996(familiar)N
1001(with)X
1170(the)X
1295(language.)X
1632(The)X
1784(examples)X
2114(below)X
2337(only)X
2506(use)X
2640(a)X
2703(small)X
2903(fraction)X
3180(of)X
3274(the)X
3399(functionality)X
3835(of)X
3928(Lisp)X
4096(\320)X
720 5092(assignment,)N
1120(function)X
1407(calls,)X
1594(object)X
1810(creation,)X
2109(and)X
2245(message)X
2537(passing.)X
10 f
920 5216(g)N
1 f
1040(Symbols:)X
920 5340(Those)N
1138(not)X
1262(familiar)X
1538(with)X
1702(Lisp)X
1866(will)X
2012(\256nd)X
2158(symbols)X
2446(to)X
2530(be)X
2628(similar)X
2872(to)X
2956(variables)X
3269(and)X
3408(function)X
3698(names)X
3926(in)X
4011(com-)X
920 5436(piled)N
1105(languages)X
1451(such)X
1623(as)X
1715(Pascal)X
1945(or)X
2037(C.)X
2155(When)X
2372(a)X
2433(symbol)X
2693(is)X
2771(evaluated,)X
3124(it)X
3193(returns)X
3440(it's)X
3566(value.)X
3784(A)X
3866(value)X
4064(can)X
920 5532(be)N
1016(assigned)X
1312(to)X
1394(a)X
1450(symbol)X
1705(with)X
1867(the)X
1985(function)X
8 f
2300(setq)X
1 f
(.)S
10 f
920 5656(g)N
1 f
1040(Assignment:)X
2398 6144(12)N

13 p
%%Page: 13 14
10 s 0 xH 0 xS 1 f
920 672(The)N
1065(function)X
8 f
1380(setq)X
1 f
1592(will)X
1736(bind)X
8 f
1926(<value>)X
1 f
2282(to)X
8 f
2392(<symbol>)X
1 f
(:)S
8 f
1304 816(\(setq)N
1592(<symbol>)X
2024(<value>\))X
1 f
920 960(Upon)N
1118(evaluation)X
1472(of)X
8 f
1587(<symbol>)X
1 f
(,)S
8 f
2039(<value>)X
1 f
2395(will)X
2539(be)X
2635(returned.)X
10 f
920 1084(g)N
1 f
1040(Function)X
1344(calls:)X
920 1208(A)N
999(function)X
1287(named)X
1522(by)X
1623(the)X
1742(symbol)X
8 f
2026(<function-name>)X
1 f
2768(can)X
2902(be)X
3000(called)X
3214(with)X
3378(a)X
3436(sequence)X
3753(of)X
3842(arguments)X
8 f
920 1304(<argument-1>)N
1544(<argument-2>...<argument-n>)X
1 f
(.)S
2900(The)X
3045(syntax)X
3274(for)X
3388(a)X
3444(function)X
3731(call)X
3867(is:)X
8 f
1304 1448(\(<function-name>)N
2120(<argument-1>)X
2744(<argument-2>...<argument-n>\))X
1 f
920 1592(Where)N
1159(each)X
8 f
1359(<argument-i>)X
1 f
1959(is)X
2036(a)X
2096(symbol,)X
2375(a)X
2435(function)X
2726(call,)X
2886(or)X
2977(a)X
3037(value.)X
3276(Each)X
3462(argument)X
3790(is)X
3868(evaluated)X
920 1688(before)N
1146(being)X
1344(passed)X
1578(in)X
1660(to)X
1742(the)X
1860(function)X
2147(associated)X
2497(with)X
8 f
2687(<function-name>)X
1 f
(.)S
10 f
920 1812(g)N
1 f
1040(Sending)X
1322(a)X
1378(message)X
1670(to)X
1752(an)X
1848(object:)X
920 1936(The)N
2 f
1099(Xlisp)X
1 f
1317(function)X
8 f
1666(send)X
1 f
1913(allows)X
2177(one)X
2348(to)X
2465(send)X
2667(the)X
2 f
2820(message)X
8 f
3175(:<message>)X
1 f
3710(to)X
3827(the)X
3980(object)X
8 f
920 2032(<object-instance>)N
1 f
(.)S
1786(If)X
8 f
1898(<object-instance>)X
1 f
('s)S
2 f
2802(class)X
1 f
2992(contains)X
3288(a)X
2 f
3353(method)X
1 f
3618(for)X
3741(the)X
3868(particular)X
2 f
920 2128(message)N
1 f
1192(,)X
1259(that)X
1426(method)X
1714(will)X
1886(be)X
2010(called)X
2250(just)X
2413(like)X
2581(a)X
2665(function)X
2980(call)X
3144(with)X
3334(arguments)X
8 f
3744([...argu-)X
920 2224(ments...])N
1 f
(.)S
8 f
1304 2368(\(send)N
1592(<object-instance>)X
2456(:<message>)X
2984([...arguments...]\))X
1 f
10 f
920 2540(g)N
1 f
1040(Object)X
1274(creation:)X
920 2664(To)N
1035(create)X
1254(a)X
1316(new)X
1476(instance)X
1765(of)X
2 f
1858(class)X
8 f
2072(<object-class>)X
1 f
(,)S
2790(send)X
2963(the)X
3088(message)X
8 f
3415(:NEW)X
1 f
3634(to)X
3723(the)X
3848(class.)X
4051(The)X
920 2760(arguments)N
8 f
1308([...arguments...])X
1 f
2170(are)X
2295(dependent)X
2650(on)X
2755(what)X
2936(kinds)X
3134(of)X
3226(initialization)X
3655(need)X
3832(to)X
3919(be)X
4020(done)X
920 2856(by)N
1020(the)X
1138(instance)X
1421(initializer)X
1748(method)X
8 f
2036(:ISNEW)X
1 f
(.)S
8 f
1304 3000(\(send)N
1592(<object-class>)X
2312(:NEW)X
2552([...arguments...]\))X
3 f
720 3240(9.2.)N
880(Create)X
1133(a)X
1193(Top-Level)X
1564(Window:)X
1 f
720 3364(Below,)N
1027(we)X
1199(create)X
1470(a)X
1585(top)X
1766(level)X
2001(window)X
8 s
2259 3339(21)N
10 s
2402 3364(by)N
2561(creating)X
2899(an)X
3054(instance)X
3396(of)X
3542(the)X
3719(Xt)X
3878(Intrinsics)X
8 f
720 3460(topLevelShellWidgetClass)N
1 f
(.)S
1919(The)X
2071(symbol)X
8 f
2361(toplevel_w)X
1 f
2868(is)X
2948(bound)X
3175(to)X
3263(the)X
3387(widget-object)X
3854(represent-)X
720 3556(ing)N
846(the)X
969(new)X
1128(top)X
1255(level)X
1436(widget)X
1679(instance.)X
2007(The)X
2157(keyword)X
2463(arguments)X
8 f
2850(:XMN_HEIGHT)X
1 f
3403(and)X
8 f
3572(:XMN_WIDTH)X
1 f
4077(are)X
720 3652(set)N
833(so)X
928(that)X
1072(the)X
1194(window)X
1476(is)X
1553(of)X
1644(size)X
1793(500x500)X
8 s
3627(22)Y
10 s
2161 3652(,)N
2205(and)X
2345(we)X
2464(also)X
2618(set)X
2732(the)X
2855(titlebar)X
3107(and)X
3248(icon)X
3411(names)X
3641(displayed)X
3973(by)X
4078(the)X
720 3748(window)N
998(manager.)X
720 3872(In)N
831(order)X
1045(to)X
1151(actually)X
1449(create)X
1686(the)X
1828(toplevel)X
2130(window,)X
2452(the)X
2594(Xt)X
2719(Intrinsics)X
3062(require)X
3335(that)X
3500(function)X
8 f
3840(XtReal-)X
720 3968(izeWidget\(\))N
1 f
1279(be)X
1386(called)X
1609(\320)X
1720(that)X
1871(operation)X
2205(is)X
2289(done)X
2476(by)X
2587(sending)X
2866(the)X
2994(message)X
8 f
3324(:REALIZE)X
1 f
3738(to)X
3830(the)X
3958(widget)X
720 4064(instance.)N
720 4188(Sending)N
1002(the)X
1120(two)X
1260(forms)X
1467(below)X
1683(to)X
2 f
1765(Winterp)X
1 f
2023('s)X
2101(server)X
2318(will)X
2462(cause)X
2661(a)X
2717(new)X
2871(toplevel)X
3149(window)X
3427(to)X
3509(pop)X
3649(up)X
3749(immediately:)X
8 f
720 4332(\(setq)N
1008(toplevel_w)X
1008 4428(\(send)N
1296(TOP_LEVEL_SHELL_WIDGET_CLASS)X
2688(:new)X
1296 4524(:XMN_HEIGHT)N
2016(500)X
1296 4620(:XMN_WIDTH)N
2016(500)X
1296 4716(:XMN_TITLE)N
2016("Winterp:)X
2496(example-1")X
1296 4812(:XMN_ICON_NAME)N
2016("example-1")X
1296 4908(\)\))N
720 5004(\(send)N
1008(toplevel_w)X
1536(:realize\))X
1 f
8 s
10 f
720 5316(hhhhhhhhhhhhhhhhhh)N
6 s
1 f
800 5391(21)N
8 s
880 5410(A)N
942(top)X
1040(level)X
1180(window)X
1402(is)X
1461(conceptually)X
1803(a)X
1847(child)X
1991(of)X
2060(the)X
2154(root)X
2273(window)X
2495(in)X
2561(the)X
2656(X)X
2719(server.)X
2907(These)X
3076(top)X
3175(level)X
3316(windows)X
3564(are)X
3658(managed)X
720 5490(by)N
800(the)X
894(window)X
1116(manager,)X
1367(allowing)X
1607(users)X
1754(to)X
1820(move,)X
1994(resize,)X
2174(and)X
2282(iconize)X
2482(application)X
2782(windows.)X
6 s
800 5565(22)N
8 s
880 5584(Hard-coding)N
1219(the)X
1314(window)X
1537(size)X
1653(in)X
1720(an)X
1797(X)X
1860(application)X
2160(is)X
2219(not)X
2317(a)X
2361(good)X
2505(idea.)X
2643(The)X
2758(code)X
2894(we)X
2984(are)X
3077(presenting)X
3359(here)X
3484(is)X
3543(just)X
3652(the)X
3746(result)X
720 5664(of)N
789(our)X
890(interactive)X
1175(session)X
1376(with)X
2 f
1506(Winterp)X
1 f
1712(,)X
1744(and)X
1852(not)X
1950(representative)X
2323(of)X
2392(how)X
2518(a)X
2562(real)X
2673(application)X
2973(should)X
3160(be)X
3236(coded.)X
10 s
2398 6144(13)N

14 p
%%Page: 14 15
10 s 0 xH 0 xS 1 f
3 f
720 672(9.3.)N
880(Create)X
1133(a)X
1193(Widget)X
1462(Layout)X
1726(Manager:)X
1 f
720 796(Above,)N
988(we)X
1116(have)X
1303(created)X
1571(an)X
1682(instance)X
1980(of)X
2082(a)X
8 f
2181(TOP_LEVEL_SHELL_WIDGET_CLASS)X
1 f
3560(which)X
3791(is)X
3879(bound)X
4114(to)X
720 892(symbol)N
8 f
1004(toplevel_w)X
1 f
(.)S
1525(We)X
1658(now)X
1817(attach)X
2030(a)X
2087(layout)X
2308(manager)X
2606(widget)X
2845(as)X
2932(a)X
2988(child)X
3168(of)X
3255(the)X
3373(top)X
3495(level)X
3671(widget.)X
3949(Layout)X
720 988(manager)N
1028(widgets)X
1308(generally)X
1638(do)X
1749(not)X
1882(add)X
2029(to)X
2122(the)X
2251(visual)X
2473 0.3750(appearance)AX
2867(of)X
2965(an)X
3072(application)X
3459(in)X
3553(and)X
3701(of)X
3800(themselves,)X
720 1084(rather,)N
952(they)X
1114(manage)X
1388(the)X
1510(layout)X
1734(and)X
1874(geometries)X
2250(of)X
2341(the)X
2463(set)X
2576(of)X
2666(child)X
2849(widgets)X
3121(that)X
3264(appear)X
3502(within)X
3729(them.)X
3952(One)X
4109(of)X
720 1180(the)N
849(important)X
1191(manager)X
1499(widgets)X
1779(in)X
1872(Motif)X
2086(is)X
2171(the)X
2301(Row/Column)X
2763(manager)X
8 f
3100(xmRowColumnWidgetClass)X
1 f
(.)S
720 1276(This)N
882(widget)X
1120(will)X
1264(lay)X
1382(out)X
1504(its)X
1599(child)X
1779(widgets)X
2048(to)X
2130(appear)X
2365(in)X
2447(a)X
2503(con\256gurable)X
2924(number)X
3189(of)X
3276(rows)X
3452(and)X
3588(columns.)X
720 1400(In)N
825(the)X
961(code)X
1151(below,)X
1405(we)X
1537(create)X
1768(an)X
1882(instance)X
2183(of)X
8 f
2316(XM_ROW_COLUMN_WIDGET_CLASS)X
1 f
3602(bound)X
3840(to)X
3941(symbol)X
8 f
720 1496(rowcol_w)N
1 f
(.)S
1149(The)X
1299(widget)X
1542(is)X
1620(a)X
1681(child)X
1866(of)X
1958(an)X
2059(instance)X
2347(of)X
8 f
2467(XM_SCROLLED_WINDOW_WIDGET_CLASS)X
1 f
3980(which)X
720 1592(is)N
796(bound)X
1019(to)X
8 f
1132(scrl_w)X
1 f
(.)S
1463(The)X
1611(scrolled)X
1888(window)X
2169(widget)X
2410(will)X
2558(put)X
2684(up)X
2788(scrollbars)X
3124(if)X
3197(the)X
3319(row/column)X
3730(widget)X
3972(within)X
720 1688(in)N
808(grows)X
1030(larger)X
1244(than)X
1408(the)X
1532(500x500)X
1838(toplevel)X
2122(window)X
2406(associated)X
2762(with)X
8 f
2957(toplevel_w)X
1 f
(.)S
3482(The)X
3632(arguments)X
3991(to)X
4078(the)X
720 1784(resources)N
8 f
1080(:XMN_ORIENTATION)X
1 f
1876(and)X
8 f
2049(:XMN_PACKING)X
1 f
2654(cause)X
2862(the)X
2989(row)X
3143(column)X
3412(widget's)X
3717(children)X
4009(to)X
4100(be)X
720 1880(laid)N
860(out)X
982(vertically,)X
1325(with)X
1487(no)X
1587(space)X
1786(padding)X
2064(between)X
2352(widgets.)X
720 2004(Sending)N
1002(the)X
1120(following)X
1451(code)X
1623(to)X
2 f
1705(Winterp)X
1 f
1963('s)X
2041(server)X
2258(will)X
2402(cause)X
2601(the)X
2719(widgets)X
2988(to)X
3070(be)X
3166(created:)X
8 f
720 2148(\(setq)N
1008(scrl_w)X
1008 2244(\(send)N
1296(XM_SCROLLED_WINDOW_WIDGET_CLASS)X
2832(:new)X
3072(:managed)X
1296 2340(toplevel_w)N
2832(;parent)X
3216(is)X
3360(toplevel)X
1296 2436(:XMN_SCROLLING_POLICY)N
2352(:automatic)X
1296 2532(\)\))N
720 2628(\(setq)N
1008(rowcol_w)X
1008 2724(\(send)N
1296(XM_ROW_COLUMN_WIDGET_CLASS)X
2592(:new)X
2832(:managed)X
1296 2820(scrl_w)N
2832(;parent)X
3216(is)X
3360(scroller)X
1296 2916(:XMN_ORIENTATION)N
2352(:vertical)X
1296 3012(:XMN_PACKING)N
2352(:pack_tight)X
1296 3108(:XMN_ENTRY_ALIGNMENT)N
2352(:alignment_center)X
1296 3204(:XMN_FOREGROUND)N
2352("Black")X
1296 3300(:XMN_BACKGROUND)N
2352("LightGray")X
1296 3396(\)\))N
1 f
720 3568(Note)N
896(that)X
1036(the)X
8 f
1182(:MANAGED)X
1 f
1586(argument)X
1909(for)X
2023(widget)X
2262(creation)X
2542(does)X
2710(the)X
2829(equivalent)X
3184(of)X
8 f
3300(XtManageWidget\(\))X
1 f
(.)S
4109(In)X
720 3664(simplistic)N
1050(terms,)X
1268(managing)X
1604(a)X
1660(child)X
1840(widget)X
2078(makes)X
2303(it)X
2367(visible)X
2600(within)X
2824(its)X
2919(parent.)X
3 f
720 3856(9.4.)N
880(Adding)X
1152(Widgets)X
1452(to)X
1539(the)X
1666(Layout)X
1930(Manager:)X
1 f
720 3980(Now)N
905(we)X
1028(can)X
1169(interactively)X
1599(add)X
1744(a)X
1809(variety)X
2061(of)X
2157(widgets)X
2435(to)X
2526(the)X
2653(Row/Column)X
3112(manager)X
3418(by)X
3527(sending)X
3805(each)X
3982(of)X
4078(the)X
720 4076(forms)N
930(below)X
1149(to)X
2 f
1234(Winterp)X
1 f
1492('s)X
1573(server.)X
1833(For)X
1967(every)X
2169(form)X
2348(that)X
2491(gets)X
2642(evaluated)X
2972(below,)X
3210(we)X
3326(will)X
3472(see)X
3597(the)X
3717(corresponding)X
720 4172(widget)N
959(appear)X
1195(within)X
1420(the)X
1539(window)X
1818(titled)X
2003(``Winterp:)X
2363(example-1'')X
2777(that)X
2919(we)X
3035(created)X
3290(earlier.)X
3558(See)X
3696(Figure)X
3927(4)X
3989(to)X
4073(see)X
720 4268(how)N
878(these)X
1063(widgets)X
1332(look.)X
8 f
720 4412(\(setq)N
1008(arrow_up_w)X
1008 4508(\(send)N
1296(XM_ARROW_BUTTON_WIDGET_CLASS)X
2688(:new)X
2928(:managed)X
3360(rowcol_w)X
1296 4604(:XMN_ARROW_DIRECTION)N
2304(:arrow_up)X
1296 4700(\)\))N
720 4796(\(setq)N
1008(big_arrow_left_w)X
1008 4892(\(send)N
1296(XM_ARROW_BUTTON_WIDGET_CLASS)X
2688(:new)X
2928(:managed)X
3360(rowcol_w)X
1296 4988(:XMN_ARROW_DIRECTION)N
2304(:arrow_left)X
1296 5084(:XMN_HEIGHT)N
2304(50)X
1296 5180(:XMN_WIDTH)N
2304(50)X
1296 5276(\)\))N
720 5372(\(setq)N
1008(label_w)X
1008 5468(\(send)N
1296(XM_LABEL_WIDGET_CLASS)X
2352(:new)X
2592(:managed)X
3024(rowcol_w)X
1296 5564(:XMN_LABEL_STRING)N
2160("hi,)X
2400(I'm)X
2592(a)X
2688(label)X
2976(widget")X
1296 5660(:XMN_FOREGROUND)N
2304("White")X
1296 5756(:XMN_BACKGROUND)N
2304("Black")X
1296 5852(\)\))N
1 f
2398 6144(14)N

15 p
%%Page: 15 16
10 s 0 xH 0 xS 1 f
8 f
720 672(\(setq)N
1008(string_push_button_w)X
1008 768(\(send)N
1296(XM_PUSH_BUTTON_WIDGET_CLASS)X
2640(:new)X
2880(:managed)X
3312(rowcol_w)X
1296 864(:XMN_LABEL_STRING)N
2304("hi,)X
2544(I'm)X
2736(a)X
2832(pushbutton)X
3360(widget")X
1296 960(:XMN_FOREGROUND)N
2304("Black")X
1296 1056(:XMN_BACKGROUND)N
2304("LightGrey")X
1296 1152(\)\))N
720 1248(\(setq)N
1008(pixmap_push_button_w)X
1008 1344(\(send)N
1296(XM_PUSH_BUTTON_WIDGET_CLASS)X
2640(:new)X
2880(:managed)X
3312(rowcol_w)X
1392 1440(:XMN_LABEL_TYPE)N
2304(:pixmap)X
1392 1536(:XMN_LABEL_PIXMAP)N
2304(\(xm_get_pixmap)X
2352 1632("/users/mayer/src/bitmaps/bob0.xbm")N
2352 1728("black")N
2736("white"\))X
1392 1824(\)\))N
720 1920(\(setq)N
1008(text_editor_w)X
1008 2016(\(send)N
1296(XM_TEXT_WIDGET_CLASS)X
2304(:new)X
2544(:managed)X
2976(:scrolled)X
3456(rowcol_w)X
1296 2112(:XMN_EDIT_MODE)N
2304(:MULTI_LINE_EDIT)X
1296 2208(:XMN_FONT_LIST)N
2304("hp8.10x20b")X
1296 2304(:XMN_HEIGHT)N
2304(100)X
1296 2400(:XMN_FOREGROUND)N
2304("Black")X
1296 2496(:XMN_BACKGROUND)N
2304("LightGrey")X
1296 2592(\)\))N
720 2688(\(setq)N
1008(string_toggle_button_w)X
1008 2784(\(send)N
1296(XM_TOGGLE_BUTTON_WIDGET_CLASS)X
2736(:new)X
2976(:managed)X
3408(rowcol_w)X
1296 2880(:XMN_LABEL_STRING)N
2304("hi,)X
2544(I'm)X
2736(a)X
2832(togglebutton)X
3456(widget")X
1296 2976(\)\))N
720 3072(\(setq)N
1008(pixmap_toggle_button_w)X
1008 3168(\(send)N
1296(XM_TOGGLE_BUTTON_WIDGET_CLASS)X
2736(:new)X
2976(:managed)X
3408(rowcol_w)X
1296 3264(:XMN_LABEL_TYPE)N
2304(:pixmap)X
1296 3360(:XMN_LABEL_PIXMAP)N
2304("/users/mayer/src/bitmaps/bob1.xbm")X
1296 3456(\)\))N
3 f
720 3696(9.5.)N
880(Setting)X
1140(or)X
1236(Querying)X
1580(the)X
1707(State)X
1901(of)X
1988(a)X
2048(Widget)X
1 f
720 3820(Messages)N
1054(may)X
1215(be)X
1314(sent)X
1466(to)X
1551(widgets)X
1823(in)X
1908(order)X
2101(to)X
2186(set)X
2298(or)X
2388(get)X
2509(widget-speci\256c)X
3022(state)X
3192(information.)X
3613(Widget)X
3872(resources)X
720 3916(are)N
842(accessible)X
1191(via)X
1312(the)X
1433(messages)X
8 f
1787(:SET_VALUES)X
1 f
2338(and)X
8 f
2505(:GET_VALUES)X
1 f
(,)S
3076(the)X
3197(methods)X
3491(associated)X
3843(with)X
4007(those)X
720 4012(messages)N
1043(correspond)X
1420(to)X
1502(the)X
1620(Xtoolkit)X
1906(functions)X
8 f
2252(XtSetValues\(\))X
1 f
2896(and)X
8 f
3060(XtGetValues\(\))X
1 f
(,)S
3724(respectively.)X
720 4136(Some)N
990(widget)X
1296(classes)X
1607(de\256ne)X
1891(certain)X
2198(class-speci\256c)X
2714(methods)X
3074(\320)X
3243(for)X
3426(example,)X
3807(the)X
3994(Motif)X
8 f
720 4232(XM_TEXT_WIDGET_CLASS)N
1 f
1758(responds)X
2121(to)X
2261(message)X
8 f
2638(:SET_STRING)X
1 f
3243(by)X
3400(invoking)X
3761(the)X
3936(method)X
8 f
720 4328(XmTextSetString\(\))N
1 f
1570(which)X
1800(sets)X
1954(the)X
2086(string)X
2302(within)X
2540(the)X
2672(editor.)X
2913(To)X
3036(set)X
3159(the)X
3291(string)X
3507(in)X
3603(the)X
3736(editor)X
3958(widget)X
720 4424(instance)N
1003(created)X
1256(above,)X
1488(we)X
1602(do:)X
8 f
720 4568(\(send)N
1008(text_editor_w)X
1680(:set_string)X
2256("Hi,)X
2496(I'm)X
2688(a)X
2784(text)X
3024(editor)X
3360(widget"\))X
1 f
720 4740(Note)N
905(that)X
2 f
1054(Winterp)X
1 f
1312('s)X
1399(use)X
1535(of)X
1631(a)X
1696(real)X
1846(object)X
2071(system)X
2322(brings)X
2551(added)X
2773(safety)X
2995(and)X
3141(error)X
3328(checking)X
3648(to)X
3740(programming)X
720 4836(with)N
886(Motif.)X
1112(In)X
1203(C,)X
1300(a)X
1360(programmer)X
1781(may)X
1943(make)X
2140(the)X
2261(naive)X
2458(assumption)X
2845(that)X
2988(calling)X
8 f
3257(XmTextSetString\(\))X
1 f
4096(on)X
720 4932(a)N
781(label)X
962(widget)X
1205(would)X
1430(set)X
1544(the)X
1667(text)X
1813(string)X
2021(in)X
2109(the)X
2233(label;)X
2437(in)X
2525(reality,)X
2776(the)X
2900(program)X
3198(would)X
3424(core)X
3589(dump)X
3797(because)X
4078(the)X
720 5028(function)N
1009(was)X
1156(called)X
1370(on)X
1472(an)X
1570(instance)X
1855(of)X
1944(the)X
2064(wrong)X
2291(class.)X
2489(In)X
2 f
2578(Winterp)X
1 f
2836(,)X
2878(such)X
3047(a)X
3104(misunderstanding)X
3694(would)X
3915(result)X
4114(in)X
720 5124(a)N
776(continuable)X
1170(error)X
1347(which)X
1563(the)X
1681(programmer)X
2098(could)X
2296(\256x)X
2400(and)X
2536(continue-from)X
3015(interactively.)X
3 f
720 5316(9.6.)N
880(Adding)X
1152(Callbacks)X
1 f
720 5440(Above,)N
980(we)X
1100(have)X
1278(shown)X
1513(how)X
1677(to)X
1765(create)X
1984(a)X
2046(``random'')X
2426(layout)X
2653(of)X
2747(widgets)X
3023(with)X
2 f
3192(Winterp)X
1 f
3450(.)X
3497(In)X
3591(order)X
3788(to)X
3877(make)X
4078(the)X
720 5536(interface)N
1024(do)X
1126(anything,)X
1448(we)X
1564(need)X
1738(to)X
1822(add)X
1960(callbacks,)X
2301(event-handlers,)X
2816(or)X
2905(actions)X
3154(to)X
3238(the)X
3358(widgets)X
3628(\320)X
3729(these)X
3915(will)X
4060(call)X
720 5632(arbitrary)N
1017(code)X
1189(in)X
1271(response)X
1572(to)X
1654(user)X
1808(input.)X
2398 6144(15)N

16 p
%%Page: 16 17
10 s 0 xH 0 xS 1 f
720 672(For)N
855(example,)X
1171(suppose)X
1453(we)X
1571(want)X
1751(to)X
1837(make)X
2035(the)X
2157(push)X
2332(button)X
2560(widget)X
2802(with)X
2968(the)X
3090(label)X
8 f
3298("hi)X
3494(I'm)X
3691(a)X
3792(pushbut-)X
720 768(ton)N
928(widget")X
1 f
1300(call)X
1452(some)X
1657(code)X
1845(that)X
2001(will)X
2161(print)X
2348(something)X
2716(on)X
2831(standard)X
3138(output)X
3377(when)X
3586(it)X
3665(is)X
3753(activated)X
4078(via)X
720 864(mouse.)N
1020(To)X
1180(do)X
1331(this,)X
1537(we)X
1702(use)X
1881(the)X
2 f
2051(Winterp)X
1 f
2381(equivalent)X
2787(of)X
8 f
2954(XtAddCallback\(\))X
1 f
(,)S
3766(the)X
3936(method)X
8 f
720 960(:add_callback)N
1 f
(.)S
720 1084(Each)N
903(widget)X
1143(class's)X
8 f
1407(:ADD_CALLBACK)X
1 f
2053(method)X
2315(takes)X
2502(as)X
2591(argument)X
2916(the)X
3036(name)X
3232(of)X
3321(the)X
3441(callback)X
3732(list,)X
3872(a)X
3931(widget-)X
720 1180(class)N
898(speci\256c)X
1165(list)X
1284(of)X
1373(symbols)X
1661(to)X
1745(bind)X
1909(to)X
1993(data)X
2149(from)X
2327(the)X
2446(callback's)X
8 f
2821(call_data)X
1 f
3274(callback)X
3563(structure,)X
3885(and)X
4022(a)X
4079(list)X
720 1276(containing)N
1082(arbitrary)X
1383(code)X
1559(to)X
1645(be)X
1746(evaluated)X
2079(upon)X
2264(execution)X
2601(of)X
2693(the)X
2816(callback.)X
3149(Note)X
3330(that)X
3475(the)X
3598(symbols)X
3889(bound)X
4114(to)X
720 1372(the)N
838(values)X
1063(from)X
8 f
1267(call_data)X
1 f
1719(are)X
1838(only)X
2000(bound)X
2220(within)X
2444(the)X
2562(lexical)X
2796(and)X
2932(dynamic)X
3228(scope)X
3431(of)X
3518(the)X
3636(callback)X
3924(code.)X
720 1496(In)N
812(the)X
935(example)X
1232(below,)X
1473(we)X
1592(are)X
1716(adding)X
1959(a)X
2021(callback)X
2315(to)X
2403(the)X
2527(push)X
2704(button)X
2934(widget's)X
8 f
3264(XmNactivateCallback)X
1 f
720 1592(list,)N
861(which)X
1081(will)X
1229(\256re)X
1360(the)X
1482(callback's)X
1832(code)X
2008(whenever)X
2345(the)X
2467(pushbutton)X
2846(is)X
2923(pressed)X
3188(and)X
3328(released.)X
3636(The)X
3784(code)X
3959(simply)X
720 1688(calls)N
896(the)X
8 f
1051(format)X
1 f
1368(function,)X
1684(which)X
1909(is)X
1991(akin)X
2158(to)X
2249(the)X
2 f
2376(Unix)X
8 f
2589(fprintf\(3S\))X
1 f
3147(subroutine:)X
3537(it)X
3611(will)X
3765(print)X
3946(out)X
4078(the)X
720 1784(callback)N
1008(reason)X
1238(and)X
1374(the)X
1492(widget-object)X
1953(that)X
2093(caused)X
2332(the)X
2450(callback)X
2738(on)X
2838(the)X
2 f
2956(Unix)X
1 f
3132(standard)X
3424(output.)X
8 f
720 1928(\(send)N
1008(string_push_button_w)X
2016(:add_callback)X
1008 2024(:XMN_ACTIVATE_CALLBACK)N
2928(;name)X
3216(of)X
3360(callback)X
3792(list)X
1008 2120('\(CALLBACK_REASON)N
1872(CALLBACK_WIDGET\))X
2928(;list)X
3216(of)X
3360(callback)X
3792(data)X
1008 2216('\()N
2928(;code)X
3216(to)X
3360(execute)X
1104 2312(\(format)N
1488(T)X
1584("reason)X
1968(=)X
2064(\304A;)X
2256(widget)X
2592(=)X
2688(\304A\\n")X
1488 2408(CALLBACK_REASON)N
2256(CALLBACK_WIDGET\))X
1104 2504(\)\))N
1 f
720 2676(Obviously,)N
1101(the)X
1227(callback)X
1523(above)X
1743(doesn't)X
2007(do)X
2115(anything)X
2423(very)X
2594(interesting.)X
2980(We)X
3120(will)X
3272(have)X
3452(to)X
3543(wait)X
3710(till)X
3827(the)X
3954(bitmap)X
720 2772(browser)N
999(example)X
1291(to)X
1373(see)X
1496(a)X
1552(more)X
1737(useful)X
1953(callback.)X
3 f
720 2964(9.7.)N
880(Direct)X
1115(Manipulation)X
1600(Programming)X
1 f
720 3088(In)N
2 f
815(Winterp)X
1 f
1073(,)X
1121(any)X
1265(widget's)X
1569(resources)X
1901(may)X
2067(be)X
2171(changed)X
2467(interactively)X
2897(via)X
3024(method)X
8 f
3321(:SET_VALUES)X
1 f
(,)S
3898(which)X
4123(is)X
720 3184(equivalent)N
1076(to)X
1160(the)X
1280(Xtoolkit's)X
8 f
1654(XtSetValues\(\))X
1 f
(.)S
2320(For)X
2452(example,)X
2765(we)X
2880(can)X
3013(interactively)X
3435(change)X
3684(the)X
3803(direction)X
4109(of)X
720 3280(the)N
844(arrow)X
1058(in)X
1146(the)X
1270(arrow)X
1485(button)X
1716(widget)X
1961(by)X
2068(sending)X
2 f
2344(Winterp)X
1 f
2629(the)X
2754(following)X
3092(code.)X
3311(Immediately)X
3743(after)X
2 f
3918(Winterp)X
1 f
720 3376(evaluates)N
1039(this)X
1174(code,)X
1366(one)X
1502(will)X
1646(see)X
1769(the)X
1887(button)X
2111(display)X
2362(a)X
2418(downward)X
2777(facing)X
2998(arrow:)X
8 f
720 3520(\(send)N
1008(arrow_up_w)X
1536(:set_values)X
1008 3616(:XMN_ARROW_DIRECTION)N
2016(:arrow_down)X
1008 3712(\))N
1 f
720 3884(In)N
808(the)X
927(example)X
1220(above,)X
1453(we)X
1568(needed)X
1817(to)X
1900(get)X
2019(a)X
2076(hold)X
2239(of)X
2327(the)X
2446(widget-object)X
2909(value)X
3105(bound)X
3327(to)X
3411(symbol)X
8 f
3696(arrow_up_w)X
1 f
720 3980(before)N
949(we)X
1066(could)X
1267(operate)X
1527(on)X
1629(the)X
1749(widget.)X
2029(In)X
2118(some)X
2309(cases,)X
2521(this)X
2658(is)X
2733(impractical,)X
3136(as)X
3225(one)X
3363(would)X
3585(rather)X
3795(just)X
3932(point)X
4118(at)X
720 4076(the)N
838(desired)X
1090(widget.)X
1348(The)X
2 f
1493(Winterp)X
1 f
1771(primitive)X
2084(function)X
8 f
2399(get_moused_widget)X
1 f
3235(allows)X
3464(just)X
3599(that.)X
720 4200(If)N
799(we)X
918(send)X
1090(the)X
1213(form)X
1394(below)X
1615(to)X
2 f
1702(Winterp)X
1 f
1960('s)X
2043(server,)X
2285(we)X
2404(will)X
2553(see)X
2681(the)X
2804(cursor)X
3030(change)X
3283(to)X
3370(a)X
3432(``crosshair'')X
3856(indicating)X
720 4296(we)N
834(are)X
953(to)X
1035(click)X
1211(on)X
1311(a)X
1367(widget.)X
1645(Upon)X
1843(clicking)X
2121(on)X
2221(the)X
2339(widget,)X
2597(we)X
2711(will)X
2855(see)X
2978(it)X
3042(change)X
3290(colors:)X
8 f
720 4440(\(send)N
1008(\(get_moused_widget\))X
1968(:set_values)X
1008 4536(:XMN_FOREGROUND)N
1776("Green")X
1008 4632(:XMN_BACKGROUND)N
1776("LightGrey")X
1008 4728(\))N
1 f
720 4900(The)N
866(primitive)X
8 f
1208(get_moused_widget)X
1 f
2045(can)X
2178(be)X
2275(used)X
2443(in)X
2527(any)X
2665(place)X
2857(that)X
2999(requires)X
3280(a)X
3338(widget-object)X
3801(as)X
3890(a)X
3948(param-)X
720 4996(eter.)N
899(One)X
1071(can)X
1221(use)X
1366(this)X
1519(function)X
1824(to)X
1924(interactively)X
2363(change)X
2629(callbacks,)X
2986(font)X
3153(sizes,)X
3367(colors,)X
3621(etc.)X
3773(In)X
3877(delivered)X
2 f
720 5092(Winterp)N
1 f
978(-based)X
1213(applications,)X
1645(one)X
1786(can)X
1923(use)X
2055(this)X
2195(feature)X
2444(to)X
2531(experiment)X
2917(with)X
3084(resource)X
3382(settings)X
3652(without)X
3922(needing)X
720 5188(documentation)N
1216(on)X
1316(the)X
1434(internals)X
1730(of)X
1817(the)X
1935(application,)X
2331(nor)X
2458(the)X
2576(widget)X
2814(hierarchy.)X
3 f
720 5380(9.8.)N
880(A)X
958(Simple)X
1213(Application)X
1632(\320)X
1732(a)X
1792(Bitmap)X
2065(Browser)X
1 f
720 5504(We)N
855(now)X
1016(create)X
1232(a)X
1291(simple)X
1527(application)X
1906(\320)X
2009(a)X
2068(bitmap)X
2313(browser)X
2595(\320)X
2698(using)X
2894(some)X
3086(of)X
3176(the)X
3297(ideas)X
3486(from)X
3666(the)X
3788(code)X
3964(above.)X
720 5600(For)N
855(each)X
1027(bitmap)X
1273(\256le)X
1399(in)X
1485(a)X
1545(directory)X
1859(of)X
1950(bitmaps,)X
2246(this)X
2384(browser)X
2666(will)X
2813(put)X
2938(up)X
3041(a)X
3100(label)X
3279(widget)X
3520(containing)X
3881(the)X
4002(name)X
720 5696(of)N
813(the)X
937(bitmap)X
1185(\256le,)X
1333(followed)X
1644(by)X
1750(a)X
1812(push)X
1989(button)X
2219(widget)X
2463(displaying)X
2822(the)X
2946(bitmap)X
3194(itself,)X
3400(followed)X
3711(by)X
3818(a)X
3881(separator)X
720 5792(widget.)N
981(All)X
1106(these)X
1294(widgets)X
1566(are)X
1688(held)X
1849(within)X
2076(a)X
2135(scrolled)X
2412(row/column)X
2822(widget,)X
3083(which)X
3302(we've)X
3521(already)X
3780(seen)X
3945(used)X
4114(in)X
2398 6144(16)N

17 p
%%Page: 17 18
10 s 0 xH 0 xS 1 f
720 672(the)N
848(example)X
1151(above.)X
1394(When)X
1617(a)X
1684(push)X
1866(button)X
2101(containing)X
2470(a)X
2537(pixmap)X
2808(is)X
2892(pressed,)X
3184(that)X
3335(pixmap)X
3606(becomes)X
3918(the)X
4047(root)X
720 768(window's)N
1068(tile)X
1202(pattern)X
1457(by)X
1568(calling)X
1817(the)X
1946(X11)X
2115(program)X
8 f
2446(xsetroot\(1\))X
1 f
3005(with)X
3178(the)X
3307(appropriate)X
3704(arguments.)X
4109(In)X
720 864(Figure)N
949(4,)X
1029(the)X
1147(window)X
1425(titled)X
1609(``Bitmap)X
1918(Browser)X
2210(Example'')X
2569(shows)X
2789(what)X
2965(this)X
3100(bitmap)X
3342(browser)X
3621(looks)X
3814(like.)X
720 988(The)N
866(simplicity)X
1206(of)X
1294(implementing)X
1760(the)X
1880(bitmap)X
2124(browser)X
2405(application)X
2783(demonstrates)X
3228(the)X
3348(power)X
3571(of)X
2 f
3660(Winterp)X
1 f
3940(and)X
4078(the)X
720 1084(expressiveness)N
1221(of)X
1312(its)X
1411(language)X
1725(syntax.)X
1998(Furthermore,)X
2443(this)X
2581(example)X
2876(illustrates)X
3210(one)X
3349(of)X
3439(the)X
3560(interesting)X
3921(features)X
720 1180(of)N
2 f
807(Winterp)X
1 f
1085(\320)X
1185(the)X
1303(ability)X
1527(to)X
1609(subclass)X
1896(a)X
1952(Motif)X
2154(widget)X
2392(by)X
2492(using)X
2 f
2685(Xlisp)X
1 f
2849('s)X
2927(object)X
3143(system.)X
720 1304(We)N
856(have)X
1032(seen)X
1199(the)X
1321(following)X
1656(code)X
1832(in)X
1918(the)X
2040(example)X
2337(above)X
2554(\320)X
2659(here,)X
2843(we)X
2962(create)X
3180(a)X
3241(top)X
3368(level)X
3549(widget,)X
3812(which)X
4033(con-)X
720 1400(tains)N
891(a)X
947(scrolled)X
1221(window)X
1499(widget,)X
1757(which)X
1973(in)X
2055(turn)X
2204(contains)X
2491(a)X
2547(Row/Column)X
2997(widget:)X
8 f
720 1544(\(setq)N
1008(toplevel_w)X
1008 1640(\(send)N
1296(TOP_LEVEL_SHELL_WIDGET_CLASS)X
2688(:new)X
1296 1736(:XMN_TITLE)N
1824("Bitmap)X
2208(Browser)X
2592(Example")X
1296 1832(:XMN_ICON_NAME)N
2016("Bitmap-Br")X
1296 1928(\)\))N
720 2024(\(setq)N
1008(scrl_w)X
1008 2120(\(send)N
1296(XM_SCROLLED_WINDOW_WIDGET_CLASS)X
2832(:new)X
3072(:managed)X
1296 2216(toplevel_w)N
1296 2312(:XMN_SCROLLING_POLICY)N
2352(:automatic)X
1296 2408(\)\))N
720 2504(\(setq)N
1008(rowcol_w)X
1008 2600(\(send)N
1296(XM_ROW_COLUMN_WIDGET_CLASS)X
2592(:new)X
2832(:managed)X
1296 2696(scrl_w)N
1296 2792(:XMN_ORIENTATION)N
2304(:vertical)X
1296 2888(:XMN_PACKING)N
2304(:pack_tight)X
1296 2984(:XMN_ENTRY_ALIGNMENT)N
2304(:alignment_center)X
1296 3080(:XMN_FOREGROUND)N
2304("Black")X
1296 3176(:XMN_BACKGROUND)N
2304("LightGray"\)\))X
1 f
720 3348(Rather)N
963(than)X
1130(placing)X
1395(an)X
1500(identical)X
1805(callback)X
2102(structure)X
2412(on)X
2521(each)X
2698(push)X
2879(button)X
3113(widget)X
3361(in)X
3453(the)X
3581(browser)X
3870(\(which)X
4123(is)X
720 3444(memory-inef\256cient\),)N
1409(we)X
1526(exploit)X
1771(a)X
1829(feature)X
2075(of)X
2164(the)X
2284(Motif)X
2488(Row/Column)X
2940(widget)X
3180(which)X
3398(allows)X
3629(us)X
3722(to)X
3806(place)X
3998(a)X
4056(sin-)X
720 3540(gle)N
842(callback,)X
8 f
1182(XmNentryCallback)X
1 f
(,)S
1994(on)X
2098(the)X
2220(Row/Column)X
2674(manager)X
2976(widget.)X
3239(Any)X
3402(activate)X
3677(callback)X
3970(occur-)X
720 3636(ring)N
870(on)X
971(a)X
1028(widget)X
1267(that)X
1408(is)X
1482(a)X
1539(child)X
1720(of)X
1808(this)X
1943(Row/Column)X
2393(widget)X
2631(will)X
2775(end)X
2911(up)X
3011(\256ring)X
3204(the)X
3322(callback)X
3610(below.)X
3866(When)X
4078(the)X
720 3732(callback)N
1025(\256res,)X
1220(symbol)X
8 f
1520(CALLBACK_ENTRY_WIDGET)X
1 f
2565(will)X
2726(be)X
2839(bound)X
3076(to)X
3175(the)X
3310(entry)X
3512(in)X
3611(the)X
3746(Row/Column)X
720 3828(widget)N
962(that)X
1106(was)X
1255(activated.)X
1589(The)X
1738(code)X
1914(for)X
2032(the)X
2154(callback)X
2446(then)X
2608(sends)X
2810(the)X
2932(message)X
8 f
3255(:XSETROOT)X
1 f
3710(to)X
3795(that)X
3938(widget,)X
720 3924(which)N
937(will)X
1082(cause)X
1282(the)X
1401(root)X
1551(window's)X
1888(background)X
2288(tile)X
2411(to)X
2494(be)X
2591(set)X
2701(to)X
2784(the)X
2903(bitmap)X
3146(contained)X
3479(in)X
3563(the)X
3683(button)X
3909(that)X
4051(was)X
720 4020(activated.)N
8 f
720 4164(\(send)N
1008(rowcol_w)X
1440(:set_callback)X
2112(:XMN_ENTRY_CALLBACK)X
1056 4260('\(CALLBACK_ENTRY_WIDGET\))N
1056 4356('\()N
4452(\(send)Y
1440(CALLBACK_ENTRY_WIDGET)X
2496(:xsetroot\))X
1152 4548(\)\))N
1 f
720 4720(Now,)N
934(we)X
1066(create)X
1297(a)X
1371(specialization)X
1851(of)X
1957(the)X
2094(Motif)X
8 f
2343(XM_PUSH_BUTTON_GADGET_CLASS)X
1 f
8 s
4695(23)Y
10 s
3742 4720(by)N
3861(making)X
4140(a)X
720 4816(trivial)N
931(subclass)X
1218(called)X
8 f
1458(Niels_Pixmap_Push_Button_Class)X
1 f
(.)S
720 4940(From)N
916(the)X
1037(outside,)X
1311(instances)X
1628(of)X
1719(this)X
1858(class)X
2038(work)X
2227(just)X
2366(like)X
2510(a)X
2570(pushbutton.)X
2969(The)X
3118(difference)X
3469(is)X
3546(that)X
3690(at)X
3772(initialization)X
720 5036(time,)N
906(an)X
1006(instance)X
1293(of)X
8 f
1412(Niels_Pixmap_Push_Button_Class)X
1 f
2876(requires)X
3159(that)X
3303(one)X
3443(give)X
3605(it)X
3673(a)X
3733(\256lename)X
4033(con-)X
720 5132(taining)N
962(the)X
1080(full)X
1211(path)X
1369(to)X
1451(a)X
1507(X)X
1585(bitmap)X
1827(\256le.)X
1969(The)X
2114(pushbutton)X
2489(will)X
2633(then)X
2791(display)X
3042(this)X
3177(bitmap.)X
720 5256(Internally,)N
1083(this)X
1229(subclass)X
1527(contains)X
1825(an)X
1932(additional)X
2283(instance)X
2577(variable)X
8 f
2895(pixmap_file)X
1 f
(.)S
3474(Each)X
3667(instance)X
3962(of)X
4061(this)X
720 5352(push)N
892(button)X
1117(will)X
1262(thus)X
1416(contain)X
1673(the)X
1792(name)X
1987(of)X
2075(the)X
2194(bitmap)X
2437(\256le)X
2559(it)X
2623(is)X
2696(displaying.)X
3069(This)X
3231(instance)X
3514(variable)X
3793(is)X
3866(later)X
4029(used)X
720 5448(by)N
820(the)X
938(method)X
8 f
1226(:XSETROOT)X
1 f
(.)S
8 s
10 f
720 5528(hhhhhhhhhhhhhhhhhh)N
6 s
1 f
800 5603(23)N
8 s
880 5622(A)N
943(Motif)X
1107(gadget,)X
1311(is)X
1372(for)X
1464(all)X
1546(intents)X
1735(and)X
1845(purposes)X
2090(the)X
2186(same)X
2335(as)X
2406(a)X
2452(Motif)X
2616(widget.)X
2840(They)X
2989(are)X
3084(more)X
3233(ef\256cient,)X
3476(and)X
3586(take)X
3710(up)X
3792(less)X
720 5702(client)N
878(and)X
986(server)X
1157(memory.)X
10 s
2398 6144(17)N

18 p
%%Page: 18 19
10 s 0 xH 0 xS 1 f
720 672(The)N
868(following)X
1202(code)X
1377(implements)X
1773(the)X
1894(subclassed)X
2260(widget.)X
2541(The)X
2689(second)X
2935(form)X
3114(below)X
3333(overrides)X
3656(the)X
3778(instance)X
4065(ini-)X
720 768(tializer)N
1091(associated)X
1569(with)X
1859(the)X
2104(superclass)X
2581(\(the)X
2 f
2853(Winterp)X
1 f
3258(code)X
3557(associated)X
4034(with)X
8 f
720 864(XM_PUSH_BUTTON_GADGET_CLASS)N
1 f
2041(that)X
2186(actually)X
2466(creates)X
2716(the)X
2840(widget\))X
3111(in)X
3199(order)X
3395(to)X
3483(initialize)X
3789(the)X
3913(instance)X
720 960(variable)N
999(and)X
1135(pass)X
1293(special)X
1536(arguments)X
1890(on)X
1990(to)X
2072(the)X
2190(superclass's)X
2598(initializer)X
2925(method)X
8 f
3213(:ISNEW)X
720 1104(;;;)N
720 1200(;;;)N
912(make)X
1152(a)X
1248(trivial)X
1632(subclass)X
2064(of)X
2208(XM_PUSH_BUTTON_GADGET_CLASS)X
720 1296(;;;)N
720 1392(\(setq)N
1008(Niels_Pixmap_Push_Button_Class)X
1008 1488(\(send)N
1296(Class)X
1584(:new)X
1296 1584('\(pixmap_file\))N
2064(;a)X
2208(new)X
2400(inst-var)X
2832(for)X
3024(this)X
3264(subclass)X
1296 1680('\(\))N
2064(;no)X
2256(class)X
2544(vars)X
2784(for)X
2976(subclass)X
1296 1776(XM_PUSH_BUTTON_GADGET_CLASS\)\))N
720 1872(;;;)N
720 1968(;;;)N
912(override)X
1344(XM_TOGGLE_BUTTON_GADGET_CLASS's)X
2880(instance)X
3312(initializer)X
720 2064(;;;)N
720 2160(\(send)N
1008(Niels_Pixmap_Push_Button_Class)X
2496(:answer)X
2880(:isnew)X
1008 2256('\(filename)N
1536(&rest)X
1824(args\))X
1008 2352('\()N
2448(\(setq)Y
1392(pixmap_file)X
1968(filename\))X
1104 2544(\(apply)N
1440('send-super)X
2016(`\(:isnew)X
2448(,@args)X
2448 2640(:XMN_LABEL_TYPE)N
3216(:pixmap)X
2448 2736(:XMN_LABEL_PIXMAP)N
3312(,filename\)\))X
1104 2832(\)\))N
1 f
720 3004(Now)N
896(we)X
1010(de\256ne)X
1226(the)X
1344(method)X
8 f
1633(:XSETROOT)X
1 f
2086(for)X
2201(the)X
2320(new)X
2475(class.)X
2672(When)X
2885(one)X
3022(sends)X
3221(the)X
3340(message)X
8 f
3661(:XSETROOT)X
1 f
4114(to)X
720 3100(an)N
827(instance)X
1121(of)X
1219(class)X
8 f
1434(Niels_Pixmap_Push_Button_Class)X
1 f
(,)S
2925(this)X
3071(method)X
3342(answers)X
3632(by)X
3742(calling)X
3990(the)X
4118(X)X
720 3196(program)N
8 f
1072(xsetroot\(1\))X
1 f
1652(specifying)X
2038(the)X
2189(bitmap)X
2464(\256le)X
2619(that)X
2792(was)X
2970(contained)X
3335(in)X
3450(the)X
3601(instance)X
3917(variable)X
8 f
720 3292(pixmap_file)N
1 f
(.)S
2 f
1309(Winterp)X
1 f
1608(calls)X
1796(the)X
8 f
1963(xsetroot\(1\))X
1 f
2532(program)X
2844(through)X
3133(the)X
3271(primitive)X
8 f
3632(system)X
1 f
(,)S
3980(which)X
720 3388(corresponds)N
1128(to)X
1210(the)X
2 f
1328(Unix)X
1 f
1504(subroutine)X
8 f
1890(system\(3S\))X
1 f
(:)S
8 f
720 3532(;;;)N
720 3628(;;;)N
912(a)X
1008(method)X
1344(that)X
1584(calls)X
1872(the)X
2064(xsetroot\(1\))X
2640(program)X
3024(to)X
3168(set)X
3360(background)X
720 3724(;;;)N
720 3820(\(send)N
1008(Niels_Pixmap_Push_Button_Class)X
2496(:answer)X
2880(:xsetroot)X
3360('\(\))X
1008 3916('\()N
4012(\(system)Y
1488(\(format)X
1872(nil)X
2064("xsetroot)X
2544(-bitmap)X
2928(\304A)X
3072(-fg)X
3264(Black)X
3552(-bg)X
3744(DimGrey")X
1872 4108(pixmap_file\)\))N
1104 4204(\)\))N
1 f
720 4376(The)N
865(code)X
1037(below)X
1253(returns)X
1496(a)X
1552(stream)X
1786(of)X
1873(bitmap)X
2115(\256le)X
2237(names)X
2462(in)X
2544(a)X
2600(particular)X
2928(directory)X
3238(on)X
3338(my)X
3460(system.)X
720 4500(We)N
854(use)X
983(the)X
2 f
1103(Unix)X
8 f
1309(popen\(3s\))X
1 f
1763(routine)X
2012(to)X
2096(read)X
2257(the)X
2377(results)X
2609(of)X
2699(the)X
2 f
2820(Unix)X
1 f
2999(command)X
8 f
3366(ls\(1\))X
1 f
(,)S
3649(which)X
3868(returns)X
4114(to)X
8 f
720 4596(stdout)N
1 f
1042(a)X
1112(list)X
1243(of)X
1344(matching)X
1676(\256lenames)X
2017(in)X
2113(the)X
2245(shell)X
2430(created)X
2697(by)X
8 f
2839(popen\(3s\))X
1 f
(.)S
8 s
4571(24)Y
8 f
10 s
3417 4596(popen\(3s\))N
1 f
3883(returns)X
4140(a)X
8 f
720 4692(FILE*)N
1 f
980(that)X
1120(can)X
1252(be)X
1348(read)X
1507(by)X
1607(the)X
2 f
1725(Xlisp)X
1 f
1909(primitive)X
8 f
2250(read-line)X
1 f
(.)S
8 f
720 4836(\(setq)N
1008(ls_reader_pipe)X
1008 4932(\(popen)N
1344("/bin/ls)X
1776(/usr/local/mayer/src/bitmaps/*.xbm")X
1344 5028(:direction)N
1872(:input\)\))X
1 f
720 5200(The)N
867(following)X
1200(code)X
1374(does)X
1543(the)X
1663(brunt)X
1854(of)X
1943(the)X
2063(work)X
2250(in)X
2334(the)X
2454(bitmap)X
2698(browser)X
2979(application.)X
3377(The)X
8 f
3553(do*)X
1 f
3720(form)X
3899(is)X
3975(essen-)X
720 5296(tially)N
928(a)X
1008(do-loop.)X
1321(It)X
1414(will)X
1582(repeatedly)X
1961(use)X
2112(primitive)X
8 f
2476(read-line)X
1 f
2951(to)X
3056(retrieve)X
3345(a)X
3424(single)X
3658(\256le)X
3803(name)X
4020(from)X
8 f
720 5392(ls_reader_pipe)N
1 f
1437(that)X
1602(we)X
1741(created)X
2019(above.)X
2276(For)X
2432(each)X
2625(\256lename)X
2947(retrieved,)X
3299(we)X
3439(create)X
3678(an)X
3800(instance)X
4109(of)X
8 f
720 5488(XM_LABEL_GADGET_CLASS)N
1 f
1775(displaying)X
2155(the)X
2300(name)X
2521(of)X
2635(the)X
2780(bitmap)X
3049(\256le,)X
3218(followed)X
3550(by)X
3677(an)X
3800(instance)X
4109(of)X
8 s
10 f
720 5568(hhhhhhhhhhhhhhhhhh)N
6 s
1 f
800 5643(24)N
8 s
880 5662(People)N
1090(familiar)X
1328(with)X
8 f
1500 -0.4219(popen\(3S\))AX
1 f
1878(will)X
2014(realize)X
2219(that)X
2351(the)X
2465(command)X
8 f
2775(/bin/ls)X
1 f
3077(could)X
3256(in)X
3343(fact)X
3475(be)X
3572(replaced)X
3824(by)X
8 f
720 5742 -0.4219(/bin/echo)AN
1 f
1062(.)X
10 s
2398 6144(18)N

19 p
%%Page: 19 20
10 s 0 xH 0 xS 1 f
8 f
720 672(Niels_Pixmap_Push_Button_Class)N
1 f
2211(displaying)X
2595(the)X
2744(pixmap)X
3035(itself,)X
3266(and)X
3433(\256nally,)X
3709(we)X
3855(create)X
4100(an)X
720 768(instance)N
1023(of)X
8 f
1158(XM_SEPARATOR_GADGET_CLASS)X
1 f
2398(to)X
2500(separate)X
2804(the)X
2942(buttons)X
3217(from)X
3413(one)X
3568(another)X
3848(inside)X
4078(the)X
720 864(Row/Column)N
1170(widget)X
1408(that)X
1548(is)X
1621(managing)X
1957(them.)X
720 988(When)N
8 f
961(read-line)X
1 f
1414(returns)X
1658(NIL,)X
1833(it)X
1898(means)X
2124(that)X
2266(we)X
2382(have)X
2556(hit)X
2662(the)X
2782(end)X
2920(of)X
3009(\256le)X
3133(in)X
8 f
3245(ls_reader_pipe)X
1 f
(.)S
3959(At)X
4061(this)X
720 1084(point)N
911(we)X
1032(have)X
1211(created)X
1471(a)X
1534(browser)X
1820(of)X
1914(all)X
2021(the)X
2146(bitmaps)X
2426(in)X
2514(the)X
2638(directory)X
2954(speci\256ed)X
3265(above.)X
3503(To)X
3618(clean)X
3814(up,)X
3940(we)X
4060(call)X
8 f
720 1180(pclose\(3S\))N
1 f
1220(to)X
1303(close)X
1489(the)X
1608(pipe)X
1767(opened)X
2020(by)X
8 f
2149(popen\(3S\))X
1 f
2602(and)X
2739(then)X
2898(call)X
8 f
3063(XtRealizeWidget\(\))X
1 f
3900(to)X
3983(create)X
720 1276(the)N
838(windows)X
1147(associated)X
1497(with)X
1659(the)X
1777(browser,)X
2076(which)X
2292(is)X
2365(displayed)X
2692(in)X
2774(Figure)X
3003(4.)X
8 f
720 1420(\(do*)N
768 1516(\(;;)N
960(local)X
1248(do-loop)X
1632(variables)X
2112(with)X
2352(initialize)X
2880(and)X
3072(increment)X
3552(expressions.)X
816 1612(\(file-name)N
1344(\(read-line)X
1872(ls_reader_pipe\))X
2640(\(read-line)X
3168(ls_reader_pipe\)\))X
816 1708(\))N
768 1804(\(\(null)N
1104(file-name\))X
1632(;loop)X
1920(done)X
2160(when)X
2400(\(read-line\))X
2976(returns)X
3360(NIL)X
3552(==>)X
3744(EOF)X
816 1900(\))N
768 1996(\(send)N
1056(XM_LABEL_GADGET_CLASS)X
2112(:new)X
2352(:managed)X
1056 2092(rowcol_w)N
1056 2188(:XMN_LABEL_TYPE)N
1824(:STRING)X
1056 2284(:XMN_LABEL_STRING)N
1920(file-name\))X
768 2380(\(send)N
1056(Niels_Pixmap_Push_Button_Class)X
2544(:new)X
2784(file-name)X
3264(:managed)X
1056 2476(rowcol_w\))N
768 2572(\(send)N
1056(XM_SEPARATOR_GADGET_CLASS)X
2304(:new)X
2544(:managed)X
1056 2668(rowcol_w)N
1056 2764(:XMN_SEPARATOR_TYPE)N
2016(:DOUBLE_LINE\))X
768 2860(\))N
720 2956(;;;)N
720 3052(;;;)N
912(Cleanup)X
720 3148(;;;)N
720 3244(\(pclose)N
1104(ls_reader_pipe\))X
2208(;close)X
2544(the)X
2736(pipe)X
720 3340(\(send)N
1008(toplevel_w)X
1536(:realize\))X
2208(;create)X
2592(the)X
2784(widgets)X
3168(windows)X
3 f
720 3628(10.)N
860(A)X
938(Real)X
1114(Application)X
1533(\320)X
1633(A)X
1711(Search)X
1967(Browser)X
2277(Based)X
2501(on)X
2605(the)X
2732(Unix)X
2916(Grep\(1\))X
3208(Program.)X
1 f
720 3752(In)N
808(this)X
944(section)X
1192(we)X
1308(create)X
1523(a)X
1581(Motif)X
1785(user)X
1941(interface)X
2245(to)X
2329(the)X
2 f
2449(Unix)X
8 f
2655(grep\(1\))X
1 f
3013(program.)X
3327(This)X
3491(example)X
3785(continues)X
4114(to)X
720 3848(show)N
915(off)X
1035(the)X
1159(power)X
1386(and)X
1528(expressivity)X
1941(of)X
2034(object)X
2256(oriented)X
2545(programming)X
3007(in)X
3095(Winterp-Lisp)X
3552(\320)X
3657(we)X
3776(make)X
3975(exten-)X
720 3944(sive)N
877(use)X
1012(of)X
1107(the)X
2 f
1233(Xlisp)X
1 f
1425(object)X
1649(system)X
1899(here.)X
2086(This)X
2256(simple)X
2497(but)X
2628(useful)X
2853(application)X
3238(searches)X
3540(a)X
3605(wildcarded)X
3991(set)X
4109(of)X
720 4040(\256les)N
881(for)X
1003(a)X
1067(regular)X
1323(expression,)X
1714(displaying)X
2075(each)X
2251(matching)X
2576(line)X
2723(in)X
2812(a)X
2875(browser.)X
3181(When)X
3400(an)X
3503(item)X
3672(is)X
3752(browsed)X
4051(\(via)X
720 4136(mouse)N
954(double)X
1197(click\))X
1405(the)X
1528(\256le)X
1655(associated)X
2010(with)X
2177(the)X
2300(item)X
2467(is)X
2546(displayed,)X
2899(with)X
3067(the)X
3191(matching)X
3515(line)X
3661(displayed)X
3994(at)X
4078(the)X
720 4232(top)N
842(of)X
929(the)X
1047(\256le.)X
1189(See)X
1325(Figure)X
1554(5)X
1614(to)X
1696(see)X
1819(what)X
1995(the)X
8 f
2141(grep\(1\))X
1 f
2497(browser)X
2776(application)X
3152(looks)X
3345(like.)X
720 4356(As)N
834(an)X
935(introductory)X
1356(example)X
1653(of)X
1746(using)X
1945(the)X
2069(object)X
2291(system,)X
2559(we)X
2679(create)X
2898(a)X
2960(new)X
3120(class)X
3302(\320)X
8 f
3436(Grep-Item-Class)X
1 f
(.)S
720 4452(Instances)N
1052(of)X
1152(the)X
1282(class)X
1470(correspond)X
1859(to)X
1953(a)X
2021(datum)X
2253(produced)X
2584(by)X
2696(the)X
2 f
2826(Unix)X
8 f
3042(grep\(1\))X
1 f
3410(\256le)X
3544(searching)X
3884(program.)X
8 f
720 4548(grep\(1\))N
1 f
1078(produces)X
1390(output)X
1616(consisting)X
1962(of)X
2051(\256le-names,)X
2427(line-numbers,)X
2892(and)X
3030(the)X
3150(instance)X
3435(of)X
3524(a)X
3582(regular)X
3833(expression)X
720 4644(match.)N
957(Below,)X
1207(we)X
1322(create)X
1536(a)X
1593(new)X
1748(class)X
1925(containing)X
2283(those)X
2472(items)X
2665(as)X
2752(instance)X
3035(variables.)X
3365(The)X
3510(new)X
3664(class)X
3840(instance)X
4123(is)X
720 4740(created)N
973(by)X
1073(sending)X
1342(the)X
1460(instance)X
1743(creation)X
2022(message)X
8 f
2342(:NEW)X
1 f
2554(to)X
2636(the)X
2754(class)X
8 f
2958(Class)X
1 f
(:)S
8 f
720 4884(;;)N
864(\(SEND)X
1152(Grep-Item-Class)X
1920(:NEW\))X
2208(returns)X
2592(<grep-item>)X
3168(instance.)X
720 4980(\(SETQ)N
1008(Grep-Item-Class)X
1008 5076(\(SEND)N
1296(Class)X
1584(:NEW)X
1296 5172('\(file-name)N
1872(line-num)X
2304(match-line\))X
1296 5268(\)\))N
1 f
720 5440(Below,)N
976(we)X
1097(de\256ne)X
1320(a)X
1383(method)X
1650(corresponding)X
2137(to)X
2227(the)X
2353(message)X
8 f
2681(:display-string)X
1 f
3429(\320)X
3537(this)X
3680(method)X
3948(will)X
4100(be)X
720 5536(used)N
896(by)X
1005(the)X
1132(search)X
1367(browser)X
1655(as)X
1751(a)X
1816(way)X
1979(to)X
2070(present)X
2331(the)X
2458(objects)X
2713(in)X
2803(the)X
2929(browser.)X
3256(We)X
3396(also)X
3553(de\256ne)X
3777(the)X
3903(accessor)X
720 5632(methods)N
8 f
1039(:file-name)X
1 f
1539(and)X
8 f
1703(:line-num)X
1 f
(.)S
8 f
720 5776(;;)N
864(\(SEND)X
1152(<grep-item>)X
1728(:display-string\))X
2544(returns)X
2928("<filename>:)X
3552(<match-line>")X
1 f
2398 6144(19)N

20 p
%%Page: 20 21
10 s 0 xH 0 xS 1 f
8 f
720 672(\(SEND)N
1008(Grep-Item-Class)X
1776(:ANSWER)X
2160(:display-string)X
2928('\(\))X
1008 768('\()N
864(\(FORMAT)Y
1488(NIL)X
1680("\304A:)X
1920(\304A")X
1488 960(file-name)N
1968(match-line\))X
1104 1056(\)\))N
720 1152(;;)N
864(\(SEND)X
1152(<grep-item>)X
1728(:file-name\))X
2304(returns)X
2688(file-name)X
3168(\(string\))X
3600(of)X
3744(<grep-item>)X
720 1248(\(SEND)N
1008(Grep-Item-Class)X
1776(:ANSWER)X
2160(:file-name)X
2688('\(\))X
1008 1344('\()N
1440(file-name)Y
1104 1536(\)\))N
720 1632(;;)N
864(\(SEND)X
1152(<grep-item>)X
1728(:file-name\))X
2304(returns)X
2688(line-number)X
3264(\(fixnum\))X
3696(of)X
3840(<grep-item>)X
720 1728(\(SEND)N
1008(Grep-Item-Class)X
1776(:ANSWER)X
2160(:line-num)X
2640('\(\))X
1008 1824('\()N
1920(line-num)Y
1104 2016(\)\))N
1 f
720 2188(Now)N
902(we)X
1022(add)X
1164(a)X
1226(new)X
1386(method)X
1652(on)X
1758(the)X
1882(class)X
2064(de\256ned)X
2326(above,)X
2565(which)X
2788(reads)X
2985(a)X
3048(line)X
3195(of)X
3289(output)X
3520(from)X
3703(the)X
2 f
3828(Unix)X
1 f
4011(com-)X
720 2284(mand)N
8 f
957(grep\(1\))X
1 f
1324(from)X
1511(a)X
1578(pipe,)X
1767(and)X
1914(puts)X
2078(the)X
2206(data)X
2370(into)X
2524(the)X
2652(instance)X
2945(variables)X
3265(of)X
3362(a)X
8 f
3456(Grep-Item-Class)X
1 f
720 2380(object.)N
8 f
720 2524(;;)N
864(\(SEND)X
1152(<grep-item>)X
1728(:read-grep-info)X
2496(<pipe>\))X
2880(returns)X
3264(<grep-item>)X
3840(or)X
3984(NIL)X
720 2620(;;)N
864(if)X
1008(EOF.)X
1248(Ivars)X
1536(are)X
1728(initialized)X
2304(to)X
2448(data)X
2688(from)X
2928(a)X
3024(line)X
3264(of)X
3408("grep)X
3696(-n")X
3888(output,)X
720 2716(;;)N
864(which)X
1152(is)X
1296(of)X
1440(the)X
1632(format)X
1968(<filename>:<linenum>:<matching)X
3456(line>\\n)X
720 2812(\(SEND)N
1008(Grep-Item-Class)X
1776(:ANSWER)X
2160(:read-grep-info)X
2928('\(pipe\))X
1008 2908('\()N
3004(\(if)Y
1296(\(AND)X
1344 3100(\(SETQ)N
1632(file-name)X
2160(\(FSCANF-STRING)X
2880(pipe)X
3120("%[\303:]:"\)\))X
1344 3196(\(SETQ)N
1632(line-num)X
2160(\(FSCANF-FIXNUM)X
2880(pipe)X
3120("%d:"\)\))X
1344 3292(\(SETQ)N
1632(match-line)X
2160(\(FSCANF-STRING)X
2880(pipe)X
3120("%[\303\\n]\\n"\)\))X
1344 3388(\))N
1200 3484(SELF)N
2640(;return)X
3024(SELF)X
3264(if)X
3408(successful)X
1200 3580(NIL)N
2640(;return)X
3024(NIL)X
3216(if)X
3360(hit)X
3552(EOF)X
1200 3676(\))N
1104 3772(\)\))N
1 f
720 3944(The)N
875(Lisp)X
1047(function)X
8 f
1372(grep)X
1 f
(,)S
1614(below,)X
1861(is)X
1945(an)X
2052(example)X
2355(of)X
2453(using)X
8 f
2685(Grep-Item-Class)X
1 f
(.)S
3456(This)X
3629(function)X
3927(invokes)X
8 f
720 4040("grep)N
1013(-n)X
1162(<regexp>)X
1599(<wildcarded)X
2180(files>")X
1 f
2541(in)X
2628(a)X
2689(sub-shell,)X
3023(sending)X
3297(the)X
3419(output)X
3647(of)X
3738(the)X
3860(command)X
720 4136(to)N
807(a)X
868(pipe.)X
1051(An)X
1174(instance)X
1462(of)X
8 f
1582(Grep-Item-Class)X
1 f
2327(is)X
2405(created)X
2663(for)X
2782(each)X
2956(regular)X
3210(expression)X
3579(match)X
3801(found,)X
4034(with)X
720 4232(method)N
8 f
1013(:read-grep-info)X
1 f
1758(initializing)X
2129(the)X
2252(object)X
2473(to)X
2560(contain)X
2821(the)X
2944(data)X
3102(corresponding)X
3585(to)X
3671(one)X
3811(match.)X
4051(The)X
720 4328(function)N
1012(returns)X
1261(a)X
1323(list)X
1446(of)X
1539(objects)X
1792(corresponding)X
2277(to)X
2365(the)X
2489(matching)X
2813(items)X
3012(found)X
3225(by)X
8 f
3359(grep\(1\))X
1 f
(.)S
3741(This)X
3909(function)X
720 4424(plays)N
909(a)X
965(key)X
1101(role)X
1246(in)X
1328(the)X
1446(upcoming)X
1786(search)X
2012(browser)X
2291(example)X
2583(application.)X
8 f
720 4568(;;)N
864(\(grep)X
1152(<grep-arg-string>\))X
2064(returns)X
2448(list)X
2688(of)X
2832(<grep-item>.)X
720 4664(;;)N
864(<grep-arg-string>)X
1728(==)X
1872("[flags])X
2304(<regexp>)X
2736(<wildcarded)X
3312(files>")X
720 4760(\(DEFUN)N
1056(grep)X
1296(\(grep-arg-string\))X
816 4856(\(DO*)N
864 4952(\(;;)N
1056(loop)X
1296(variables,)X
1824(initializers,)X
2496(and)X
2688(increments.)X
912 5048(\(fp)N
1104(\(POPEN)X
1440(\(STRCAT)X
1824("grep)X
2112(-n)X
2256(")X
2352(grep-arg-string)X
3120(")X
3216(/dev/null"\))X
1440 5144(:DIRECTION)N
1968(:INPUT\)\))X
912 5240(\(line)N
1200(\(SEND)X
1488(\(SEND)X
1776(Grep-Item-Class)X
2544(:NEW\))X
2832(:read-grep-info)X
3600(fp\))X
1200 5336(\(SEND)N
1488(\(SEND)X
1776(Grep-Item-Class)X
2544(:NEW\))X
2832(:read-grep-info)X
3600(fp\)\))X
912 5432(\(result)N
1296('\(\)\))X
2640(;init)X
2928(to)X
3072(an)X
3216(empty)X
3504(list)X
912 5528(\))N
864 5624(;;)N
1008(loop)X
1248(test)X
1488(and)X
1680(return)X
864 5720(\(\(NULL)N
1200(line\))X
2640(;:read-grep-info)X
3456(returns)X
3840(NIL)X
4032(on)X
4176(EOF)X
912 5816(\(PCLOSE)N
1296(fp\))X
2640(;close)X
2976(the)X
3168(pipe)X
3408(opened)X
3744(above)X
1 f
2398 6144(20)N

21 p
%%Page: 21 22
10 s 0 xH 0 xS 1 f
8 f
912 672(\(REVERSE)N
1344(result\))X
2640(;return)X
3024(list)X
3264(of)X
3408(grep)X
3648(objects.)X
912 768(\))N
864 864(;;)N
1008(loop)X
1248(body)X
864 960(\(SETQ)N
1152(result)X
1488(\(CONS)X
1776(line)X
2016(result\)\))X
2640(;prepend)X
3072(grep-obj)X
3504(to)X
3648(list)X
864 1056(\)\))N
1 f
720 1228(As)N
830(an)X
927(example)X
1220(of)X
1309(using)X
2 f
1504(Xlisp)X
1 f
1668('s)X
1748(object-oriented)X
2256(features)X
2533(with)X
2697(Motif)X
2901(widgets,)X
3192(we)X
3308(specialize)X
3647(Motif's)X
3909(text)X
4051(edi-)X
720 1324(tor)N
855(widget)X
1119(as)X
1232(a)X
1313(\256le-viewer)X
1706(via)X
1849(\(trivial\))X
2139(subclassing.)X
2573(Instances)X
2917(of)X
3029(the)X
3172(new)X
3351(class,)X
8 f
3600(Text-Viewer-)X
720 1420(Widget-Class)N
1 f
(,)S
1338(display)X
1591(the)X
1711(\256le)X
1835(of)X
1924(a)X
1982(browsed)X
2276(item)X
2440(with)X
2604(the)X
2725(text)X
2868(scrolled)X
3145(to)X
3230(the)X
3351(appropriate)X
3740(line.)X
3903(We)X
4038(sub-)X
720 1516(class)N
898(the)X
1018(Motif)X
1222(XmText)X
1511(widget)X
1751(so)X
1844(that)X
1986(we)X
2102(can)X
2236(add)X
2374(a)X
2431(method)X
8 f
2720(:find-file)X
1 f
3221(which)X
3438(reads)X
3629(the)X
3748(speci\256ed)X
4054(\256le,)X
720 1612(displays)N
1011(it)X
1084(in)X
1175(the)X
1302(text)X
1451(widget,)X
1718(and)X
1863(scrolls)X
2101(the)X
2228(text)X
2377(to)X
2468(the)X
2595(appropriate)X
2990(line)X
3139(number.)X
3433(The)X
3587(class)X
3772(has)X
3909(an)X
4015(extra)X
720 1708(instance)N
1009(variable,)X
8 f
1341(file-path)X
1 f
1798(which)X
2019(stores)X
2231(the)X
2354(name)X
2553(of)X
2645(the)X
2768(\256le.)X
2915(This)X
3082(allows)X
3316(method)X
8 f
3609(:find-file)X
1 f
4114(to)X
720 1804(be)N
816(more)X
1001(intelligent)X
1345(\320)X
1445(if)X
1514(the)X
1632(same)X
1817(\256le)X
1939(is)X
2012(browsed)X
2304(multiple)X
2590(times,)X
2803(it)X
2867(will)X
3011(not)X
3133(be)X
3229(reread)X
3451(each)X
3619(time.)X
720 1928(First,)N
909(we)X
1026(de\256ne)X
1245(the)X
1366(new)X
1523(class)X
1702(by)X
1805(sending)X
2078(message)X
8 f
2402(:NEW)X
1 f
2618(to)X
2704(class)X
8 f
2912(Class)X
1 f
(,)S
3196(with)X
3362(arguments)X
3720(specifying)X
4078(the)X
720 2024(instance)N
1012(variables)X
1331(of)X
1427(the)X
1554(class,)X
1759(as)X
1855(well)X
2022(as)X
2118(the)X
2245(superclass.)X
2624(Then,)X
2838(we)X
2960(de\256ne)X
3184(the)X
3310(instance)X
3601(initializer)X
3936(method)X
8 f
720 2120(:ISNEW)N
1 f
(,)S
1048(which)X
1264(will)X
1408(automatically)X
1865(be)X
1962(called)X
2175(whenever)X
2509(new)X
2664(instances)X
2979(of)X
3067(the)X
3186(widget)X
3425(are)X
3545(created)X
3799(\(by)X
3927(sending)X
8 f
720 2216(:NEW)N
1 f
939(to)X
1028(the)X
1153(class\).)X
1403(The)X
1555(initializer)X
1889(method)X
2156(sets)X
2303(the)X
2428(instance)X
2718(variable,)X
3024(then)X
3189(calls)X
3362(the)X
3486(superclass')X
3869(initializer)X
720 2312(method)N
986(to)X
1074(create)X
1293(the)X
1417(Motif)X
1625(text)X
1771(editor)X
1984(widget.)X
2268(Since)X
8 f
2500(Text-Viewer-Widget-Class)X
1 f
3678(is)X
3757(a)X
3819(specialized)X
720 2408(editor,)N
951(the)X
1073(instance)X
1360(initializer)X
1691(hard-codes)X
2068(optional)X
2354(features)X
2633(of)X
2724(the)X
2846(editor)X
3057(such)X
3228(that)X
3371(all)X
3474(instances)X
3791(end)X
3930(up)X
4033(hav-)X
720 2504(ing)N
842(scroll)X
1040(bars,)X
1214(display)X
1465(multiple)X
1751(lines)X
1922(of)X
2009(text,)X
2169(etc.)X
8 f
720 2648(\(SETQ)N
1008(Text-Viewer-Widget-Class)X
1008 2744(\(SEND)N
1296(Class)X
1584(:NEW)X
1296 2840('\(file-path\))N
2640(;new)X
2880(instance)X
3312(vars)X
1296 2936('\(\))N
2640(;no)X
2832(class)X
3120(vars)X
1296 3032(XM_TEXT_WIDGET_CLASS\)\))N
2640(;superclass)X
720 3224(;;)N
864(\(SEND)X
1152(Text-Viewer-Widget-Class)X
2352(:NEW)X
2592(<:MANAGED/:UNMANAGED>)X
3648(<parent>)X
4080([resources...]\))X
720 3320(\(SEND)N
1008(Text-Viewer-Widget-Class)X
2208(:ANSWER)X
2592(:ISNEW)X
2928('\(managed-kwd)X
3600(&rest)X
3888(args\))X
1008 3416('\()N
3512(\(SETQ)Y
1392(file-path)X
1872(""\))X
2208(;initialize)X
2784(instance)X
3216(var)X
1104 3608(\(APPLY)N
1440('SEND-SUPER)X
2208(;call)X
2496(superclass's)X
3120(init)X
3360(to)X
3504(create)X
3840(widget)X
1440 3704(`\(:ISNEW)N
1872(,managed-kwd)X
2496(;either)X
2880(:MANAGED)X
3312(or)X
3456(:UNMANAGED)X
1872 3800(:SCROLLED)N
2496(;force)X
2832(the)X
3024(editor)X
3360(to)X
3504(have)X
3744(scrollbars)X
1872 3896(,@args)N
2496(;parent)X
2880(widget)X
3216(+)X
3312(optional)X
3744(arguments)X
1872 3992(:XMN_EDIT_MODE)N
2592(:MULTI_LINE_EDIT)X
3408(;multi)X
3744(line)X
3984(for)X
4176(files)X
1872 4088(:XMN_EDITABLE)N
2544(NIL)X
2736(;do)X
2928(not)X
3120(allow)X
3408(user)X
3648(to)X
3792(edit)X
4032(text.)X
1872 4184(\)\))N
1104 4280(\)\))N
1 f
720 4452(The)N
867(method)X
8 f
1157(:find-file)X
1 f
1659(is)X
1734(de\256ned)X
1992(next.)X
2172(Note)X
2350(that)X
2492(in)X
2 f
2576(Xlisp)X
1 f
2762(methods,)X
3075(the)X
3195(symbol)X
8 f
3480(SELF)X
1 f
3694(is)X
3770(bound)X
3993(to)X
4078(the)X
720 4548(object)N
1082(receiving)X
1546(the)X
1809(message.)X
2266(The)X
2556(messages)X
8 f
3052(:SET_INSERTION_POSITION)X
1 f
(,)S
8 f
720 4644(:GET_INSERTION_POSITION)N
1 f
(,)S
8 f
1896(:SCROLL)X
1 f
(,)S
8 f
2304(:REPLACE)X
1 f
(,)S
8 f
2760(:SET_STRING)X
1 f
(,)S
8 f
3360(:ENABLE_REDISPLAY)X
1 f
720 4740(and)N
8 f
991(:DISABLE_REDISPLAY)X
1 f
1982(correspond)X
2466(to)X
2655(methods)X
3053(de\256ned)X
3416(on)X
3622(the)X
3846(superclass)X
8 f
720 4836(XM_TEXT_WIDGET_CLASS)N
1 f
(.)S
1720(These)X
1932(are)X
2051(implemented)X
2489(in)X
2571(C)X
2644(by)X
2744(the)X
2862(Motif)X
3064(toolkit.)X
8 f
720 4980(;;)N
864(\(SEND)X
1152(<textviewer>)X
1776(:find-file)X
2304(<filename>)X
2832(<linenum>\))X
720 5076(\(SEND)N
1008(Text-Viewer-Widget-Class)X
2208(:ANSWER)X
2592(:find-file)X
3120('\(filename)X
3648(linenum\))X
1008 5172('\()N
5268(\(COND)Y
1152 5364(\(\(STRING=)N
1632(filename)X
2064(file-path\))X
2640(;if)X
2832(file)X
3072(already)X
3456(read)X
3696(into)X
3936(widget)X
1200 5460(\(SEND)N
1488(SELF)X
1728(:SET_INSERTION_POSITION)X
2880(0\))X
3024(;then)X
3312(make)X
3552(<linenum>)X
4032(top)X
1200 5556(\(SEND)N
1488(SELF)X
1728(:SCROLL)X
2112(\(1-)X
2304(linenum\)\))X
3024(;by)X
3216(scrolling)X
3696(to)X
3840(it.)X
1200 5652(\))N
1152 5748(\(T)N
3024(;else)X
3312(read)X
3552(file)X
3792(into)X
4032(widget.)X
1200 5844(\(LET*)N
1488(\(\(fp)X
1728(\(OPEN)X
2016(filename)X
2448(:DIRECTION)X
2976(:INPUT\)\))X
1 f
2398 6144(21)N

22 p
%%Page: 22 23
10 s 0 xH 0 xS 1 f
8 f
1536 672(insert-pos)N
1536 768(text-line\))N
1296 864(\(IF)N
1488(\(NULL)X
1776(fp\))X
1488 960(\(ERROR)N
1824("Can't)X
2160(open)X
2400(file.")X
2736(filename\)\))X
1296 1152(\(SEND)N
1584(SELF)X
1824(:SET_STRING)X
2400(""\))X
3024(;clear)X
3360(out)X
3552(old)X
3744(text)X
1296 1248(\(SEND)N
1584(SELF)X
1824(:DISABLE_REDISPLAY)X
2736(NIL\))X
3024(;show)X
3312(no)X
3456(changes)X
3840(till)X
4080(done)X
1296 1344(\(LOOP)N
1344 1440(\(IF)N
1536(\(NULL)X
1824(\(SETQ)X
2112(text-line)X
2592(\(READ-LINE)X
3120(fp\)\)\))X
1536 1536(\(RETURN\)\))N
1344 1632(\(SETQ)N
1632(insert-pos)X
2160(\(SEND)X
2448(SELF)X
2688(:GET_INSERTION_POSITION\)\))X
1344 1728(\(SEND)N
1632(SELF)X
1872(:REPLACE)X
2304(insert-pos)X
2832(insert-pos)X
3360(\(STRCAT)X
3744(text-line)X
4224("\\n"\)\))X
1344 1824(\))N
1296 1920(\(SEND)N
1584(SELF)X
1824(:SCROLL)X
2208(linenum\))X
2736(;make)X
3024(<linenum>)X
3504(top)X
3696(of)X
3840(screen)X
1296 2016(\(SEND)N
1584(SELF)X
1824(:ENABLE_REDISPLAY\))X
2736(;now)X
2976(show)X
3216(changes...)X
1296 2112(\(CLOSE)N
1632(fp\))X
1296 2208(\(SETQ)N
1584(file-path)X
2064(filename\))X
1296 2304(\)\)\))N
1104 2400(\)\))N
1 f
720 2572(The)N
869(browser)X
1152 0.2596(user-interface)AX
1619(to)X
8 f
1734(grep\(1\))X
1 f
2095(is)X
2173(made)X
2372(from)X
2553(the)X
2676(Motif)X
2883(list)X
3005(widget,)X
3268(which)X
3489(simply)X
3731(displays)X
4018(a)X
4079(list)X
720 2668(of)N
815(\(compound\))X
1235(strings)X
1476(as)X
1571(a)X
1635(series)X
1846(of)X
1941(selectable)X
2286(lines)X
2465(of)X
2560(text.)X
2748(Callbacks)X
3092(can)X
3232(be)X
3336(de\256ned)X
3600(on)X
3708(the)X
3834(list)X
3958(widget)X
720 2764(such)N
893(that)X
1039(when)X
1239(a)X
1301(line)X
1447(is)X
1526(selected)X
1811(one)X
1953(can)X
2091(retrieve)X
2363(the)X
2488(compound)X
2853(string)X
3062(that)X
3209(was)X
3361(browsed,)X
3680(or)X
3774(get)X
3899(back)X
4078(the)X
720 2860(position)N
998(\(index\))X
1251(of)X
1339(the)X
1458(item)X
1621(that)X
1762(was)X
1908(browsed.)X
2241(Both)X
2417(callback)X
2706(mechanisms)X
3123(require)X
3372(the)X
3490(programmer)X
3907(to)X
3989(main-)X
720 2956(tain)N
864(an)X
964(external)X
1247(association)X
1627(between)X
1919(the)X
2041(browser)X
2324(objects)X
2575(and)X
2715(their)X
2886(textual)X
3128(representation)X
3607(in)X
3693(the)X
3816(list)X
3938(widget.)X
720 3052(By)N
837(subclassing)X
1230(the)X
1352(list)X
1473(widget,)X
1735(we)X
1853(can)X
1989(create)X
2205(an)X
2304(interface)X
2609(that)X
2752(hides)X
2944(the)X
3065(mechanism)X
3453(for)X
3570(associating)X
3949(objects)X
720 3148(with)N
885(the)X
1006(strings)X
1242(representing)X
1662(them.)X
1866(As)X
1979(an)X
2079(additional)X
2423(feature,)X
2691(the)X
2813(abstraction)X
3189(enables)X
3454(the)X
3576(browser)X
3859(to)X
3945(display)X
720 3244(an)N
820(arbitrary)X
1121(collection)X
1461(of)X
1552(objects,)X
1823(as)X
1914(long)X
2080(as)X
2171(the)X
2293(objects)X
2544(respond)X
2821(to)X
2906(a)X
2965(simple)X
3201(``protocol'')X
3599(\320)X
3702(objects)X
3952(receiv-)X
720 3340(ing)N
842(the)X
960(message)X
8 f
1280(:display-string)X
1 f
2020(must)X
2195(return)X
2407(a)X
2463(textual)X
2701(representation)X
3176(of)X
3263(the)X
3381(object.)X
720 3464(The)N
867(subclassed)X
1232(list)X
1351(widget)X
1591(adds)X
1760(a)X
1818(new)X
1974(instance)X
2259(variable)X
8 f
2568(items)X
1 f
2830(which)X
3048(holds)X
3243(an)X
3341(array)X
3529(of)X
3618(objects)X
3868(presented)X
720 3560(by)N
833(the)X
964(browser.)X
1276(The)X
1434(browser)X
1726(will)X
1883(display)X
2147(the)X
2278(list)X
2408(of)X
2508(objects)X
2768(given)X
2978(as)X
3077(argument)X
3412(to)X
3506(the)X
3636(method)X
8 f
3936(:set-)X
720 3656(browser-items)N
1 f
1376(\(the)X
1533(method)X
1805(also)X
1966(initializes)X
8 f
2337(items)X
1 f
(\).)S
2676(When)X
2900(an)X
3008(item)X
3182(is)X
3267(selected)X
3558(via)X
3688(a)X
3757(callback,)X
4078(the)X
720 3752(position)N
1002(of)X
1094(the)X
1217(selected)X
1500(item)X
1666(is)X
1743(passed)X
1981(to)X
2067(method)X
8 f
2359(:get-br-item-at-pos)X
1 f
(,)S
3315(which)X
3535(returns)X
3782(the)X
3904(browsed)X
720 3848(object)N
936(using)X
1129(an)X
1225(ef\256cient)X
1508(lookup)X
1750(implemented)X
2188(by)X
2288(array)X
2474(indexing.)X
8 f
720 3992(\(SETQ)N
1008(List-Browser-Widget-Class)X
1008 4088(\(SEND)N
1296(Class)X
1584(:NEW)X
1296 4184('\(items\))N
2640(;new)X
2880(instance)X
3312(vars)X
1296 4280('\(\))N
2640(;no)X
2832(class)X
3120(vars)X
1296 4376(XM_LIST_WIDGET_CLASS\)\))N
2640(;superclass)X
720 4568(\(SEND)N
1008(List-Browser-Widget-Class)X
2256(:ANSWER)X
2640(:set-browser-items)X
3552('\(items-list\))X
1008 4664('\()N
4760(\(LET*)Y
1392(\()X
4856(\(items-end-idx)Y
2160(\(LENGTH)X
2544(items-list\)\))X
1440 4952(\(display-items)N
2160(\(MAKE-ARRAY)X
2736(items-end-idx\)\)\))X
1200 5144(;;)N
1344(initialize)X
1872(the)X
2064('items')X
2448(instance)X
2880(variable)X
3312(so)X
3456(that)X
3696(it)X
1200 5240(;;)N
1344(holds)X
1632(all)X
1824(the)X
2016(BROWSER_OBJECTs)X
2784(passed)X
3120(in)X
3264(<items-list>)X
1200 5336(\(SETQ)N
1488(items)X
1776(\(MAKE-ARRAY)X
2352(items-end-idx\)\))X
3120(;create)X
3504(the)X
3696(array)X
1200 5432(\(DO)N
1392(\()X
2640(;copy)X
2928(elts)X
3168(from)X
3408(list)X
3648(to)X
3792(array)X
1440 5528(\(i)N
1728(0)X
2256(\(1+)X
2448(i\)\))X
1440 5624(\(elts)N
1728(items-list)X
2256(\(CDR)X
2496(elts\)\)\))X
1392 5720(;;)N
1536(loop)X
1776(till)X
2016(no)X
2160(more)X
2400(elts)X
1392 5816(\(\(NULL)N
1728(elts\)\))X
1 f
2398 6144(22)N

23 p
%%Page: 23 24
10 s 0 xH 0 xS 1 f
8 f
1392 672(;;)N
1536(loop)X
1776(body)X
1392 768(\(SETF)N
1680(\(AREF)X
1968(items)X
2256(i\))X
2400(\(CAR)X
2640(elts\)\))X
2976(;set)X
3216(items[i])X
1392 864(\(SETF)N
1680(\(AREF)X
1968(display-items)X
2640(i\))X
2976(;set)X
3216(display-items[i])X
1680 960(\(SEND)N
1968(\(CAR)X
2208(elts\))X
2496(:display-string\)\))X
1392 1056(\))N
1200 1152(;;)N
1344(initialize)X
1872(the)X
2064(widget,)X
2448(passing)X
2832(in)X
2976(the)X
3168(browser)X
3552(items.)X
1200 1248(\(SEND)N
1488(SELF)X
1728(:SET_VALUES)X
1488 1344(:XMN_ITEMS)N
2256(display-items)X
1488 1440(:XMN_ITEM_COUNT)N
2256(items-end-idx)X
1488 1536(\))N
1200 1632(\))N
1104 1728(\)\))N
720 1824(\(SEND)N
1008(List-Browser-Widget-Class)X
2256(:ANSWER)X
2640(:get-br-item-at-pos)X
3600('\(position\))X
1008 1920('\()N
2016(\(AREF)Y
1392(items)X
1680(\(1-)X
1872(position\)\))X
1104 2112(\)\))N
1 f
720 2284(The)N
870(user)X
1029(interface)X
1336(for)X
1455(the)X
1578(search)X
1809(browser)X
2093(application)X
2474(is)X
2552(created)X
2810(by)X
2915(de\256ning)X
3202(a)X
3263(hierarchy)X
3592(of)X
3684(widget-objects.)X
720 2380(Parent)N
950(widgets)X
1224(manage)X
1499(the)X
1622(geometries)X
1999(of)X
2091(their)X
2263(children,)X
2571(so)X
2667(the)X
2790(resulting)X
3095(interface)X
3402(is)X
3480(a)X
3541(nesting)X
3796(of)X
3887(windows)X
720 2476(corresponding)N
1203(to)X
1289(the)X
1411(parent-child)X
1823(relationships)X
2256(created.)X
2553(Refer)X
2756(to)X
2842(Figure)X
3075(5)X
3139(to)X
3225(see)X
3352(the)X
3475(graphics)X
3772(produced)X
4096(by)X
720 2572(the)N
838(code)X
1010(below.)X
720 2696(In)N
824(the)X
959(UI)X
1081(code)X
1271(below,)X
1525(we)X
1657(\256rst)X
1819(create)X
2050(an)X
2164(instance)X
2465(of)X
8 f
2598(TOP_LEVEL_SHELL_WIDGET_CLASS)X
1 f
3980(which)X
720 2792(represents)N
1068(the)X
1188(outermost)X
1530(window)X
1810(of)X
1899(the)X
2018(application)X
2395(\320)X
2496(its)X
2592(geometry)X
2916(is)X
2990(managed)X
3301(by)X
3402(the)X
3521(X)X
3600(window)X
3879(manager,)X
720 2888(allowing)N
1043(the)X
1185(user)X
1363(to)X
1469(move,)X
1711(resize,)X
1963(and)X
2123(iconize)X
2399(the)X
2541(window.)X
2883(Inside)X
3123(that,)X
3307(we)X
3445(create)X
3682(an)X
3802(instance)X
4109(of)X
8 f
720 2984(XM_PANED_WINDOW_WIDGET_CLASS)N
1 f
(:)S
2114(this)X
2257(widget)X
2503(divides)X
2762(up)X
2869(the)X
2994(space)X
3200(of)X
3294(the)X
3419(toplevel)X
3704(window)X
3989(into)X
4140(a)X
720 3080(series)N
934(of)X
1032(vertical)X
1304(panes;)X
1540(the)X
1669(sizes)X
1856(of)X
1954(the)X
2083(panes)X
2297(can)X
2440(be)X
2547(adjusted)X
2845(by)X
2956(moving)X
3231(their)X
3409(resize)X
3628(handles)X
3904(with)X
4078(the)X
720 3176(mouse.)N
978(The)X
1132(\256rst)X
1285(pane)X
1466(is)X
1548(an)X
1653(instance)X
1945(of)X
8 f
2069(XM_ROW_COLUMN_WIDGET_CLASS)X
1 f
(,)S
3365(a)X
3429(manager)X
3734(widget)X
3980(which)X
720 3272(lays)N
888(out)X
1029(the)X
1166(controls)X
1463(for)X
1596(the)X
1733(search)X
1979(browser)X
2278(in)X
2380(the)X
2518(following)X
2869(horizontal)X
3234(sequence:)X
3591(\(1\))X
3725(a)X
3801(pushbutton,)X
8 f
720 3368(doit-button-w)N
1 f
(;)S
1390(\(2\))X
1508(a)X
1568(text)X
1712(label)X
1892("Search)X
2167(for)X
2284(string:";)X
2566(\(3\))X
2683(a)X
2742(single-line)X
3103(text)X
3246(editor,)X
8 f
3504(search-editor-)X
720 3464(w)N
1 f
(,)S
820(into)X
976(which)X
1204(the)X
1334(user)X
1500(types)X
1701(the)X
1831(regular)X
2091(expression)X
2466(for)X
2592(the)X
2722(search;)X
2982(\(4\))X
3108(a)X
3176(label)X
3364("From)X
3602(Files:";)X
3866(and)X
4014(\(5\))X
4140(a)X
720 3560(single-line)N
1082(text)X
1225(editor,)X
8 f
1483(files-editor-w)X
1 f
(,)S
2198(into)X
2345(which)X
2564(the)X
2685(user)X
2842(types)X
3034(the)X
3155(wildcarded)X
3535(\256lenames)X
3865(to)X
3950(search.)X
720 3656(The)N
886(pane)X
1079(below)X
1316(the)X
1456(controlpanel)X
1899(is)X
8 f
2022(browser-w)X
1 f
(,)S
2516(an)X
2634(instance)X
2939(of)X
3048(the)X
8 f
3216(List-Browser-Widget-)X
720 3752(Class)N
1 f
(.)S
1021(The)X
1167(pane)X
1339(below)X
1555(the)X
1673(browser)X
1952(is)X
8 f
2053(filename-label-w)X
1 f
(,)S
2861(which)X
3077(displays)X
3359(the)X
3477(name)X
3671(of)X
3758(the)X
3876(\256le)X
3998(being)X
720 3848(browsed.)N
1036(And)X
1199(\256nally,)X
1448(the)X
1571(last)X
1707(pane)X
1884(is)X
8 f
1990(viewtext-w)X
1 f
(,)S
2515(an)X
2616(instance)X
2904(of)X
8 f
3024(Text-Viewer-Widget-Class)X
1 f
720 3944(which)N
937(is)X
1011(used)X
1179(to)X
1262(display)X
1514(the)X
1633(browsed)X
1926(\256les.)X
2100(The)X
2246(keyword)X
8 f
2576(:SCROLLED)X
1 f
3029(used)X
3197(in)X
3280(creating)X
3560(the)X
3679(text)X
3820(viewer)X
4060(and)X
720 4040(browser)N
999(widgets)X
1268(mean)X
1462(that)X
1602(these)X
1787(widgets)X
2056(are)X
2175(created)X
2428(with)X
2590(scrollbars.)X
8 f
720 4280(\(LET)N
960(\(top-w)X
1296(paned-w)X
1680(controlpanel-w\))X
816 4376(\(SETQ)N
1104(top-w)X
1104 4472(\(SEND)N
1392(TOP_LEVEL_SHELL_WIDGET_CLASS)X
2784(:NEW)X
1392 4568(:XMN_TITLE)N
1920("Grep)X
2208(Browser")X
1392 4664(:XMN_ICON_NAME)N
2112("Grep)X
2400(Browser")X
1392 4760(\)\))N
816 4856(\(SETQ)N
1104(paned-w)X
1104 4952(\(SEND)N
1392(XM_PANED_WINDOW_WIDGET_CLASS)X
2784(:NEW)X
3024(:MANAGED)X
1392 5048(top-w)N
2640(;the)X
2880(only)X
3120(child)X
3408(of)X
3552(the)X
3744(toplevel)X
4176(window)X
1392 5144(\)\))N
816 5240(\(SETQ)N
1104(controlpanel-w)X
1104 5336(\(SEND)N
1392(XM_ROW_COLUMN_WIDGET_CLASS)X
2688(:NEW)X
2928(:MANAGED)X
1392 5432(paned-w)N
2640(;the)X
2880(first)X
3168(child)X
3456(of)X
3600(the)X
3792(paned)X
4080(window)X
1392 5528(:XMN_ORIENTATION)N
2208(:HORIZONTAL)X
1392 5624(:XMN_PACKING)N
2016(:PACK_TIGHT)X
1392 5720(\)\))N
816 5816(\(SETQ)N
1104(doit-button-w)X
1 f
2398 6144(23)N

24 p
%%Page: 24 25
10 s 0 xH 0 xS 1 f
8 f
1104 672(\(SEND)N
1392(XM_PUSH_BUTTON_WIDGET_CLASS)X
2736(:NEW)X
2976(:MANAGED)X
1392 768(controlpanel-w)N
2640(;the)X
2880(first)X
3168(child)X
3456(of)X
3600(the)X
3792(controlpanel)X
1392 864(:XMN_LABEL_STRING)N
2256("Do)X
2448(Search")X
1392 960(\)\))N
816 1056(\(SEND)N
1104(XM_LABEL_WIDGET_CLASS)X
2160(:NEW)X
2400(:MANAGED)X
1104 1152(controlpanel-w)N
2640(;the)X
2880(second)X
3216(child)X
3504(of)X
3648(the)X
3840(controlpanel)X
1104 1248(:XMN_LABEL_STRING)N
1968("Search)X
2352(for)X
2544(string:")X
1104 1344(\))N
816 1440(\(SETQ)N
1104(search-editor-w)X
1104 1536(\(SEND)N
1392(XM_TEXT_WIDGET_CLASS)X
2400(:NEW)X
2640(:MANAGED)X
1392 1632(controlpanel-w)N
2640(;the)X
2880(third)X
3168(child)X
3456(of)X
3600(the)X
3792(controlpanel)X
1392 1728(:XMN_EDIT_MODE)N
2112(:SINGLE_LINE_EDIT)X
1392 1824(\)\))N
816 1920(\(SEND)N
1104(XM_LABEL_WIDGET_CLASS)X
2160(:NEW)X
2400(:MANAGED)X
1104 2016(controlpanel-w)N
2640(;the)X
2880(fourth)X
3216(child)X
3504(of)X
3648(the)X
3840(controlpanel)X
1104 2112(:XMN_LABEL_STRING)N
1968("From)X
2256(Files:")X
1104 2208(\))N
816 2304(\(SETQ)N
1104(files-editor-w)X
1104 2400(\(SEND)N
1392(XM_TEXT_WIDGET_CLASS)X
2400(:NEW)X
2640(:MANAGED)X
1392 2496(controlpanel-w)N
2640(;the)X
2880(fifth)X
3168(child)X
3456(of)X
3600(the)X
3792(controlpanel)X
1392 2592(:XMN_EDIT_MODE)N
2112(:SINGLE_LINE_EDIT)X
1392 2688(\)\))N
816 2784(\(SETQ)N
1104(browser-w)X
1104 2880(\(SEND)N
1392(List-Browser-Widget-Class)X
2640(:NEW)X
2880(:MANAGED)X
3312(:SCROLLED)X
1392 2976(paned-w)N
2640(;the)X
2880(second)X
3216(child)X
3504(of)X
3648(the)X
3840(paned)X
4128(window)X
1392 3072(:XMN_VISIBLE_ITEM_COUNT)N
2544(20)X
1392 3168(\)\))N
816 3264(\(SETQ)N
1104(filename-label-w)X
1104 3360(\(SEND)N
1392(XM_LABEL_WIDGET_CLASS)X
2448(:NEW)X
2688(:MANAGED)X
1392 3456(paned-w)N
2640(;the)X
2880(third)X
3168(child)X
3456(of)X
3600(the)X
3792(paned)X
4080(window)X
1392 3552(:XMN_LABEL_STRING)N
2256("None")X
1392 3648(\)\))N
816 3744(\(SETQ)N
1104(viewtext-w)X
1104 3840(\(SEND)N
1392(Text-Viewer-Widget-Class)X
2592(:NEW)X
2832(:MANAGED)X
1392 3936(paned-w)N
2640(;the)X
2880(fourth)X
3216(&)X
3312(final)X
3600(child)X
3888(of)X
4032(paned)X
4320(window)X
1392 4032(:XMN_HEIGHT)N
1968(400)X
1392 4128(\)\))N
816 4224(\(SEND)N
1104(top-w)X
1392(:REALIZE\))X
2640(;create)X
3024(the)X
3216(toplevel)X
3648(window)X
3984(&)X
4080(children)X
816 4320(;;)N
816 4416(;;)N
960(now)X
1152(that)X
1392(the)X
1584(widgets)X
1968(have)X
2208(been)X
2448(created,)X
2880(we)X
3024(know)X
3264(their)X
3552(sizes;)X
3888(set)X
4080(constraint)X
816 4512(;;)N
960(resources)X
1440(on)X
1584(the)X
1776(controlpanel)X
2400(and)X
2592(the)X
2784(filename)X
3216(label)X
3504(widget)X
3840(so)X
3984(that)X
4224(the)X
4416(paned)X
816 4608(;;)N
960(window)X
1296(widget)X
1632(managing)X
2064(their)X
2352(geometries)X
2880(won't)X
3168(let)X
3360(them)X
3600(be)X
3744(resized)X
4128(\(this)X
816 4704(;;)N
960(removes)X
1344(the)X
1536("resize)X
1920(handles")X
2352(for)X
2544(these)X
2832(widgets\).)X
816 4800(\(LET)N
1056(\(h\))X
1056 4896(\(SEND)N
1344(controlpanel-w)X
2064(:GET_VALUES)X
2640(:XMN_HEIGHT)X
3216('h\))X
1056 4992(\(SEND)N
1344(controlpanel-w)X
2064(:SET_VALUES)X
1344 5088(:XMN_PANE_MAXIMUM)N
2208(h)X
1344 5184(:XMN_PANE_MINIMUM)N
2208(h\)\))X
816 5280(\(LET)N
1056(\(h\))X
1056 5376(\(SEND)N
1344(filename-label-w)X
2160(:GET_VALUES)X
2736(:XMN_HEIGHT)X
3312('h\))X
1056 5472(\(SEND)N
1344(filename-label-w)X
2160(:SET_VALUES)X
1344 5568(:XMN_PANE_MAXIMUM)N
2208(h)X
1344 5664(:XMN_PANE_MINIMUM)N
2208(h\)\))X
816 5760(\))N
1 f
2398 6144(24)N

25 p
%%Page: 25 26
10 s 0 xH 0 xS 1 f
1435 5568(Figure)N
1664(4.)X
1744(The)X
1889(graphics)X
2181(produced)X
2500(by)X
2600(the)X
2 f
2718(Winterp)X
1 f
2996(example)X
3288(code.)X
2398 6144(25)N

26 p
%%Page: 26 27
10 s 0 xH 0 xS 1 f
1430 5568(Figure)N
1659(5.)X
1739(The)X
2 f
1884(Winterp)X
8 f
2162(grep\(1\))X
1 f
2518(browser)X
2797(example)X
3089(application.)X
2398 6144(26)N

27 p
%%Page: 27 28
10 s 0 xH 0 xS 1 f
720 672(Calling)N
1014(function)X
8 f
1369(do-grep-search)X
1 f
2101(runs)X
8 f
2327(grep\(1\))X
1 f
(,)S
2743(searching)X
3111(for)X
3265(the)X
3423(regular)X
3711(expression)X
4114(in)X
8 f
720 768(search-editor-w)N
1 f
1478(from)X
1672(the)X
1808(list)X
1943(of)X
2048(wildcarded)X
2443(\256les)X
2614(speci\256ed)X
2937(in)X
8 f
3064(files-editor-w)X
1 f
(.)S
3813(The)X
3975(list)X
4109(of)X
720 864(objects)N
967(returned)X
1255(by)X
8 f
1383(grep)X
1 f
1595(is)X
1668(then)X
1826(displayed)X
2153(in)X
2235(the)X
2353(browser)X
2632(widget:)X
8 f
720 1008(\(DEFUN)N
1056(do-grep-search)X
1776(\(\))X
816 1104(\(SEND)N
1104(browser-w)X
1584(:set-browser-items)X
1104 1200(\(grep)N
1392(\(STRCAT)X
1440 1296("'")N
3120(;protect)X
3552(regexps)X
3936(from)X
4176(shell)X
1440 1392(\(SEND)N
1728(search-editor-w)X
2496(:GET_STRING\))X
3120(;get)X
3360(regexp)X
3696(for)X
3888(search)X
1440 1488("')N
1584(")X
1440 1584(\(SEND)N
1728(files-editor-w)X
2448(:GET_STRING\)\))X
3120(;wildcarded)X
3696(files)X
3984(to)X
4128(search)X
1392 1680(\)\)\))N
1 f
720 1852(We)N
860(complete)X
1182(the)X
1308(user)X
1470(interface)X
1780(by)X
1888(attaching)X
2210(programmatic)X
2688(actions)X
2943(\320)X
3051(callbacks)X
3378(\320)X
3486(to)X
3577(the)X
3704(widget-objects)X
720 1948(created)N
995(above.)X
1249(First,)X
1457(we)X
1593(want)X
1791(the)X
1931(pushbutton)X
2328(associated)X
2699(with)X
2882(symbol)X
8 f
3186(doit-button-w)X
1 f
3851(to)X
3954(initiate)X
720 2044(searches)N
1013(when)X
1207(it)X
1271(is)X
1344(pressed)X
1605(by)X
1705(calling)X
8 f
1971(do-grep-search)X
1 f
(.)S
8 f
720 2188(\(SEND)N
1008(doit-button-w)X
1680(:ADD_CALLBACK)X
2352(:XMN_ARM_CALLBACK)X
3216('\(\))X
1008 2284('\()N
2380(\(do-grep-search\))Y
1104 2476(\)\))N
1 f
720 2648(We)N
869(now)X
1044(attach)X
1273(a)X
1346(callback)X
1651(to)X
1750(the)X
1885(browser)X
2181(widget)X
2436(\320)X
2553(when)X
2764(a)X
2838(browser-item)X
3304(is)X
3395(double)X
3651(clicked,)X
3941(symbol)X
8 f
720 2744(CALLBACK_ITEM_POSITION)N
1 f
1806(gets)X
1965(bound)X
2195(to)X
2287(the)X
2415(position)X
2702(of)X
2799(the)X
2927(object)X
3153(in)X
3245(the)X
3373(browser.)X
3682(The)X
3837(position)X
4123(is)X
720 2840(passed)N
966(to)X
8 f
1088(:get-br-item-at-pos)X
1 f
2032(which)X
2260(returns)X
2515(the)X
2645(browsed)X
2949(item.)X
3143(The)X
3300(\256le-name)X
3635(and)X
3784(line-number)X
720 2936(data)N
875(from)X
1052(the)X
1171(grep-item)X
1504(is)X
1578(retrieved)X
1885(and)X
2022(used)X
2190(to)X
2273(display)X
2525(the)X
2644(\256le)X
2767(at)X
2846(the)X
2965(correct)X
3210(line)X
3351(number)X
3617(in)X
3699(the)X
3817(text)X
3957(viewer)X
720 3032(widget.)N
8 f
720 3176(\(SEND)N
1008(browser-w)X
1488(:ADD_CALLBACK)X
2160(:XMN_DEFAULT_ACTION_CALLBACK)X
1008 3272('\(CALLBACK_ITEM_POSITION\))N
2256(;bound)X
2592(to)X
2736(the)X
2928(position)X
3360(of)X
3504(the)X
3696(item)X
3936(selected)X
1008 3368(`\()N
3464(\(LET*)Y
1392(\(\(browsed-object)X
1488 3560(\(SEND)N
1776(,browser-w)X
2304(:get-br-item-at-pos)X
3264(CALLBACK_ITEM_POSITION\)\))X
1440 3656(\(filename)N
1488 3752(\(SEND)N
1776(browsed-object)X
2496(:file-name\)\))X
1440 3848(\(linenum)N
1488 3944(\(SEND)N
1776(browsed-object)X
2496(:line-num\)\))X
1440 4040(\))N
1200 4136(\(SEND)N
1488(,filename-label-w)X
2352(:SET_VALUES)X
2928(:XMN_LABEL_STRING)X
3792(filename\))X
1200 4232(\(SEND)N
1488(,viewtext-w)X
2064(:find-file)X
2592(filename)X
3024(linenum\))X
1200 4328(\)\))N
1008 4424(\))N
1 f
720 4596(Finally,)N
989(to)X
1074(make)X
1272(the)X
1394 0.2596(user-interface)AX
1861(easier)X
2073(to)X
2159(use,)X
2310(we)X
2428(note)X
2590(that)X
2734(after)X
2906(entering)X
3193(text)X
3337(into)X
3485(one)X
3625(of)X
3716(the)X
3838(single-line)X
720 4692(text)N
868(editor)X
1083(widgets,)X
1380(it)X
1452(is)X
1533(more)X
1726(natural)X
1977(to)X
2067(hit)X
2178(the)X
2303(return-key)X
2665(to)X
2754(initiate)X
3003(a)X
3066(new)X
3227(search.)X
3480(Otherwise)X
3837(one)X
3980(has)X
4114(to)X
720 4788(move)N
920(from)X
1098(the)X
1218(keyboard)X
1539(to)X
1623(the)X
1743(mouse)X
1974(just)X
2111(to)X
2195(click)X
2373(the)X
2493("Do)X
2646(Search")X
2920(button.)X
3166(The)X
3313(following)X
3646(Xtoolkit)X
3935(transla-)X
720 4884(tion)N
869(entries)X
1108(provide)X
1378(the)X
1501(binding)X
1770(between)X
2063(hitting)X
2296(the)X
2419(return-key)X
2778(and)X
2918(calling)X
3160(the)X
8 f
3310(do-grep-search)X
1 f
4006(func-)X
720 4980(tion)N
864(that)X
1004(initiates)X
1277(a)X
1333(new)X
1487(search.)X
8 f
720 5124(\(SEND)N
1008(search-editor-w)X
1776(:OVERRIDE_TRANSLATIONS)X
1008 5220("<Key>Return:)N
1680(Lisp\(do-grep-search\)"\))X
720 5316(\(SEND)N
1008(files-editor-w)X
1776(:OVERRIDE_TRANSLATIONS)X
1008 5412("<Key>Return:)N
1680(Lisp\(do-grep-search\)"\))X
1 f
2398 6144(27)N

28 p
%%Page: 28 29
10 s 0 xH 0 xS 1 f
3 f
720 672(10.1.)N
920(A)X
998(Note)X
1179(on)X
1283(Programming)X
1784(Style.)X
1 f
720 796(The)N
872(examples)X
1202(presented)X
1537(in)X
1626(this)X
1768(section)X
2022(do)X
2129(not)X
2258(necessarily)X
2642(represent)X
2964(good)X
3151(Motif)X
3360(or)X
2 f
3454(Winterp)X
1 f
3740(programming)X
720 892(style)N
891(\320)X
991(the)X
1109(style)X
1280(has)X
1407(been)X
1579(relaxed)X
1836(and)X
1972(simpli\256ed)X
2311(for)X
2425(the)X
2543(purpose)X
2817(of)X
2904(exposition.)X
720 1016(First,)N
909(we)X
1026(have)X
1201(used)X
1371(global)X
1594(variables)X
1907(throughout.)X
2301(For)X
2436(these)X
2625(examples,)X
2972(such)X
3143(usage)X
3350(makes)X
3579(sense)X
3777(because)X
4056(that)X
720 1112(is)N
802(the)X
929(way)X
1092(one)X
1237(might)X
1452(use)X
1588(Lisp)X
1759(in)X
1850(interactively)X
2280(prototyping)X
2682(an)X
2787(application)X
3172(\320)X
3281(try)X
3399(bits)X
3542(of)X
3637(functionality)X
4074(out)X
720 1208(piece)N
915(by)X
1020(piece)X
1215(until)X
1386(one)X
1527(has)X
1659(come)X
1858(up)X
1963(with)X
2130(functionality)X
2564(that)X
2709(deserves)X
3011(to)X
3098(be)X
3199(encapsulated.)X
3660(Once)X
3856(the)X
3980(proto-)X
720 1304(type)N
882(works,)X
1122(one)X
1262(may)X
1424(want)X
1604(to)X
1690(turn)X
1843(the)X
1965(code)X
2141(into)X
2289(a)X
2349(function,)X
2659(or)X
2749(encapsulate)X
3147(it)X
3214(within)X
3441(an)X
2 f
3540(Xlisp)X
1 f
3727(object.)X
3966(In)X
4056(that)X
720 1400(way,)N
894(the)X
1012(reliance)X
1287(on)X
1387(global)X
1607(variables)X
1917(will)X
2061(be)X
2157(removed.)X
720 1524(Second,)N
1013(the)X
1148(examples)X
1488(above)X
1718(hard-code)X
2078(a)X
2152(number)X
2435(of)X
2540(X)X
2636(resources)X
2978(that)X
3136(should)X
3387(be)X
3501(speci\256able)X
3882(in)X
3982(the)X
4118(X)X
720 1620(resource)N
1027(database)X
1338(\320)X
1452(either)X
1669(in)X
1765(.Xdefaults)X
2130(or)X
2230(in)X
2325(the)X
2456(application)X
2845(defaults)X
3132(\256les.)X
3318(For)X
3462(the)X
3593(purposes)X
3911(of)X
4011(these)X
720 1716(examples,)N
1066(it)X
1133(would)X
1356(have)X
1531(been)X
1706(confusing)X
2045(to)X
2130(specify)X
2386(these)X
2575(resources)X
2903(separately)X
3253(from)X
3433(the)X
3555(code.)X
3771(Again,)X
4011(since)X
720 1812(the)N
844(above)X
1062(code)X
1240(is)X
1319(prototype)X
1652(code,)X
1850(it)X
1920(is)X
1999(perfectly)X
2311(justi\256able)X
2652(to)X
2740(hard-code)X
3088(resources)X
3418(until)X
3589(one)X
3730(has)X
3862(settled)X
4096(on)X
720 1908(which)N
936(parameters)X
1309(of)X
1396(customization)X
1865(should)X
2098(and)X
2234(should)X
2467(not)X
2589(be)X
2685(accessible)X
3031(via)X
3149(the)X
3267(X)X
3345(resource)X
3638(database.)X
3 f
720 2100(11.)N
860(Future)X
1116(Directions)X
2 f
720 2224(Winterp)N
1 f
978('s)X
1061(features)X
1341(make)X
1540(it)X
1609(a)X
1670(good)X
1855(platform)X
2156(for)X
2275(a)X
2337(number)X
2608(of)X
2701(interesting)X
3065(experiments)X
3483(in)X
3571(UIMS)X
3797(and)X
3939(``direct)X
720 2320(manipulation)N
1164(builder'')X
1467(technologies.)X
1914(Because)X
2 f
2204(Winterp)X
1 f
2484(is)X
2559(currently)X
2870(a)X
2927(language-based)X
3448(builder,)X
3716(it)X
3781(would)X
4002(make)X
720 2416(an)N
822(ideal)X
1004(platform)X
1306(for)X
1426(the)X
1551(development)X
1992(of)X
2086(a)X
2149(``two)X
2350(view'')X
2587(builder)X
2841(that)X
2988(would)X
3215(allow)X
3420(application)X
3803(prototyping)X
720 2512(via)N
838(programmatic)X
1308(or)X
1395(visual)X
1606(manipulation)X
2048(of)X
2135(UIs.)X
2 f
720 2636(Winterp)N
1 f
1009(was)X
1165(designed)X
1481(to)X
1574(support)X
1845(the)X
1974(addition)X
2267(of)X
2366(direct)X
2581(manipulation)X
3035(interface)X
3349(building)X
3647(capabilities.)X
4064(We)X
720 2732(envision)N
1014(that)X
1157(a)X
1216(widget)X
1457(``palette'')X
1802(could)X
2003(be)X
2102(built)X
2271(to)X
2356(allow)X
2557(the)X
2678(interactive)X
3040(selection)X
3348(and)X
3486(placement)X
3838(of)X
3927(widgets)X
720 2828(within)N
951(an)X
1054(interface.)X
1383(Another)X
1673(useful)X
1896(feature)X
2147(would)X
2374(be)X
2477(a)X
2540(resource)X
2840(browser)X
3126(which)X
3349(would)X
3576(be)X
3680(used)X
3855(to)X
3945(display)X
720 2924(and)N
861(edit)X
1006(the)X
1129(resources)X
1458(associated)X
1813(with)X
1979(any)X
2119(widget)X
2361(in)X
2447(the)X
2569(system.)X
2835(Extending)X
2 f
3188(Winterp)X
1 f
3446('s)X
3528(widget-object)X
3993(based)X
720 3020(interfaces)N
1056(so)X
1150(that)X
1293(they)X
1454(are)X
1576(``self)X
1769(describing'')X
2180(would)X
2403(be)X
2502(a)X
2561(very)X
2727(elegant)X
2983(way)X
3141(of)X
3232(dumping)X
3540(out)X
3666(a)X
3726(programmatic)X
720 3116 0.2596(user-interface)AN
1196(speci\256cation)X
1634(after)X
1815(it)X
1892(has)X
2032(been)X
2217(built)X
2396(interactively)X
2829(and)X
2977(would)X
3209(provide)X
3486(the)X
3616(basis)X
3808(for)X
3934(a)X
4002(``two)X
720 3212(view'')N
950(approach)X
1265(to)X
1347(interface)X
1649(building.)X
720 3336(One)N
877(of)X
967(the)X
1088(areas)X
1277(where)X
1497(current)X
1748(direct-manipulation)X
2403(and)X
2542(``What)X
2793(You)X
2954(See)X
3093(Is)X
3174(What)X
3371(You)X
3532(Get'')X
3725(\(WYSIWYG\))X
720 3432(interface)N
1032(builders)X
1320(fail)X
1457(is)X
1540(in)X
1632(allowing)X
1942(end-user)X
2249(customization)X
2728(without)X
3001(having)X
3248(to)X
3339(include)X
3604(the)X
3731(builder)X
3987(in)X
4078(the)X
720 3528(deliverable.)N
1118(The)X
1264(challenge)X
1593(here)X
1753(is)X
1827(to)X
1910(allow)X
2109(the)X
2228(traditional)X
2578(X)X
2657(resources)X
2982(mechanism)X
3368(to)X
3451(customize)X
3798(sizes,)X
3996(fonts,)X
720 3624(spacing,)N
1006(line-widths,)X
1407(etc.,)X
1562(while)X
1761(still)X
1901(maintaining)X
2304(a)X
2361(facsimile)X
2676(of)X
2764(the)X
2883(static)X
3073(UI)X
3179(layout)X
3400(intended)X
3697(by)X
3798(the)X
3917(applica-)X
720 3720(tion)N
877(designers.)X
1253(Traditional)X
1642(Xtoolkit-based)X
2151(applications)X
2571(do)X
2684(not)X
2819(suffer)X
3040(from)X
3229(such)X
3409(problems)X
3740(because)X
4029(their)X
720 3816(interfaces)N
1058(are)X
1182(laid-out)X
1456(via)X
1579(the)X
1702(constraints)X
2074(provided)X
2384(by)X
2489(geometry)X
2816(management)X
3250(widgets.)X
3543(With)X
3727(builders,)X
4029(such)X
720 3912(constraint)N
1059(management)X
1492(is)X
1568(hard)X
1734(to)X
1819(specify)X
2074(graphically,)X
2478(so)X
2572(widget)X
2813(positioning)X
3195(and)X
3335(sizes)X
3515(must)X
3694(be)X
3794(hard-coded.)X
720 4008(What)N
929(is)X
1017(needed)X
1279(is)X
1366(the)X
1498(ability)X
1736(to)X
1832(provide)X
2111(an)X
2221(explicit,)X
2515(user-manipulable)X
3106(interface)X
3422(to)X
3518(the)X
3650(constraint-based)X
720 4104(language)N
1030(that)X
1170(is)X
1243(implicit)X
1511(in)X
1593(the)X
1711(Xtoolkit's)X
2055(manager)X
2352(widgets.)X
2641(This)X
2803(is)X
2876(an)X
2972(open)X
3148(and)X
3284(active)X
3496(research)X
3785(area.)X
720 4228(Robert)N
973(Leichner)X
1294(of)X
1396(HP)X
1533(Labs)X
1724(has)X
1866(already)X
2138(provided)X
2459(a)X
2531(novel)X
2745(UIMS)X
2981(structure)X
3298(for)X
2 f
3428(Winterp)X
1 f
3722(by)X
3838(building)X
4140(a)X
720 4324(general-purpose)N
1263(event-driven)X
1694(recursive)X
2014(state)X
2186(machine)X
2483(as)X
2574(a)X
2634(high)X
2800(level)X
2980(means)X
3209(of)X
3300(describing)X
3658(how)X
3820(application)X
720 4420(state)N
887(interacts)X
1179(with)X
1341(the)X
1459(UI.)X
1584(This)X
1746(UIMS)X
1966(architecture)X
2366(is)X
2439(being)X
2637(used)X
2804(in)X
2886(an)X
2982(ongoing)X
3264(project)X
3507(to)X
3589(support)X
3850(collabora-)X
720 4516(tion)N
875(among)X
1124(distributed)X
1497(workgroups)X
1911(via)X
2040(the)X
2169(use)X
2307(of)X
2405(multimedia)X
2800(\(audio)X
3036(and)X
3183(video\).)X
2 f
3439(Winterp)X
1 f
3728(and)X
3874(the)X
4002(state-)X
720 4612(machine)N
1018(based)X
1227(UIMS)X
1453(are)X
1578(being)X
1782(used)X
1955(as)X
2049(the)X
2174(basis)X
2361(for)X
2482(a)X
2545(media)X
2768(management)X
3205(toolkit)X
3440(which)X
3663(controls)X
3948(experi-)X
720 4708(mental)N
961(multimedia)X
1348(hardware)X
1671(residing)X
1952(on)X
2055(the)X
2176(workstation.)X
2617(The)X
2 f
2765(Strudel)X
1 f
3019(project)X
3265(is)X
3340(also)X
3491(experimenting)X
3976(with)X
4140(a)X
720 4804(variety)N
963(of)X
1050(UIMS)X
1270(approaches)X
1652(in)X
1734(order)X
1924(to)X
2006(come)X
2200(up)X
2300(with)X
2462(a)X
2518(high-level)X
2863(description)X
3239(of)X
3326(e-mail)X
3551(based)X
3754(forms.)X
720 4928(In)N
819(order)X
1022(to)X
1117(ease)X
1289(application)X
1678(development)X
2125(and)X
2274(simplify)X
2573(``hybrid)X
2869(programming'',)X
3412(we)X
3539(are)X
3671(considering)X
4078(the)X
720 5024(addition)N
1007(of)X
1099(a)X
1160(dynamic)X
1461(loader)X
1687(to)X
1774(allow)X
1977(new)X
2136(C-implemented)X
2659(primitives)X
3008(to)X
3095(be)X
3196(loaded)X
3435(into)X
3584(a)X
3644(running)X
3917(applica-)X
720 5120(tion.)N
908(It)X
981(may)X
1143(also)X
1296(be)X
1396(useful)X
1616(to)X
1702(dynamically)X
2122(load)X
2284(widget)X
2526(code)X
2703(on)X
2808(demand,)X
3107(instead)X
3359(of)X
3451(always)X
3699(having)X
3942(it)X
4011(com-)X
720 5216(piled)N
900(in)X
982(to)X
1064(the)X
1182(application.)X
3 f
720 5408(12.)N
860(Conclusion)X
1 f
720 5532(We)N
855(believe)X
1110(that)X
2 f
1253(Winterp)X
1 f
1534(provides)X
1833(an)X
1932(excellent,)X
2265(practical)X
2565(development)X
3002(and)X
3141(delivery)X
3428(environment)X
3857(for)X
3975(exten-)X
720 5628(sible)N
892(Motif-based)X
1305(applications.)X
1733(If)X
1808(this)X
1944(paper)X
2144(has)X
2271(piqued)X
2509(your)X
2676(interest)X
2932(in)X
2 f
3014(Winterp)X
1 f
3272(,)X
3312(you)X
3452(may)X
3610(obtain)X
3830(the)X
3948(current)X
720 5724(source,)N
977(documentation,)X
1500(and)X
1643(examples)X
1973(via)X
2098(anonymous)X
2494(ftp)X
2611(from)X
2795(host)X
8 f
2984(export.lcs.mit.edu)X
1 f
(:)S
3898(in)X
3988(direc-)X
720 5820(tory)N
8 f
948(contrib/winterp)X
1 f
1738(you)X
1928(will)X
2122(\256nd)X
2316(the)X
8 f
2512(compress\(1\)'d)X
3234(tar\(1\))X
1 f
3592(\256le)X
8 f
3792(winterp-)X
1 f
2398 6144(28)N

29 p
%%Page: 29 30
10 s 0 xH 0 xS 1 f
8 f
720 672(<latestversion>.tar.Z)N
1 f
8 s
647(25)Y
10 s
672(.)Y
1858(If)X
1938(you)X
2084(do)X
2190(not)X
2318(have)X
2496(Internet)X
2772(access)X
3004(you)X
3150(may)X
3314(request)X
3573(the)X
3698(source)X
3935(code)X
4114(to)X
720 768(be)N
861(mailed)X
1144(to)X
1271(you)X
1456(by)X
1601(sending)X
1915(a)X
2016(message)X
2353(to)X
8 f
2508(winterp-source@hplnpm.hpl.hp.com)X
1 f
4109(or)X
8 f
720 864(hplabs!hplnpm!winterp-source)N
1 f
(.)S
720 988(There)N
936(is)X
1017(also)X
1174(a)X
1238(mailing)X
1510(list)X
1635(for)X
2 f
1757(Winterp)X
1 f
2015(-related)X
2289(announcements)X
2817(and)X
2962(discussions.)X
3375(To)X
3493(get)X
3620(added)X
3841(to)X
3932(the)X
4059(list,)X
720 1084(send)N
936(mail)X
1147(to)X
8 f
1305(winterp-request@hplnpm.hpl.hp.com)X
1 f
2957(or)X
8 f
3120(hplabs!hplnpm!winterp-)X
720 1180(request)N
1 f
(.)S
3 f
720 1372(13.)N
860(Acknowledgements)X
1 f
720 1496(I)N
768(would)X
989(like)X
1130(to)X
1213(thank)X
1412(my)X
1535(team-mates)X
1926(Allan)X
2125(Kuchinsky,)X
2513(Allan)X
2712(Shepherd,)X
3056(and)X
3193(Bob)X
3348(Leichner)X
3656(for)X
3772(being)X
3972(highly)X
720 1592(supportive)N
1082(early)X
1267(users)X
1456(of)X
2 f
1547(Winterp)X
1 f
1829(and)X
1969(giving)X
2197(feedback)X
2512(on)X
2616(problems)X
2938(and)X
3078(limitations)X
3443(of)X
3533(the)X
3654(design.)X
3926(I)X
3976(would)X
720 1688(also)N
873(like)X
1017(to)X
1103(thank)X
1305(Nancy)X
1539(Kendzierski,)X
1971(manager)X
2272(of)X
2363(HP)X
2489(Labs')X
2697(Human-Computer)X
3305(Interaction)X
3678(Department)X
4082(for)X
720 1784(providing)N
1059(the)X
1185(support)X
1453(for)X
1575(the)X
1701(development)X
2143(of)X
2 f
2238(Winterp)X
1 f
2523(and)X
2 f
2666(Strudel)X
1 f
2897(.)X
2944(Also,)X
3142(Nancy)X
3379(Kendzierski,)X
3814(Jim)X
3956(Miller,)X
720 1880(and)N
856(Allan)X
1054(Kuchinsky)X
1421(provided)X
1726(helpful)X
1973(comments)X
2322(on)X
2422(this)X
2557(paper.)X
720 2004(Doug)N
924(Young)X
1168(deserves)X
1471(special)X
1720(thanks)X
1956(for)X
2077(answering)X
2434(lots)X
2576(of)X
2670(``stupid)X
2946(questions'')X
3329(I)X
3383(had)X
3526(in)X
3615(working)X
3909(with)X
4078(the)X
720 2100(Motif)N
929(and)X
1072(HP)X
1201(widgets)X
1477(and)X
1620(for)X
1741(providing)X
2079(early)X
2267(copies)X
2499(of)X
2593(his)X
2713(excellent)X
3030(book)X
3217(on)X
3324(programming)X
3786(with)X
3954(Xt)X
4060(and)X
720 2196(Motif)N
922([Young90].)X
1314(And)X
1472(\256nally,)X
1716(many)X
1914(thanks)X
2143(are)X
2262(due)X
2398(to)X
2480(David)X
2696(Betz)X
2863(for)X
2977(making)X
2 f
3237(Xlisp)X
1 f
3421(publicly)X
3703(available.)X
3 f
720 2388(14.)N
860(Addendum)X
1261(\320)X
1361(Instructions)X
1794(for)X
1917(Obtaining)X
2282(WINTERP)X
2684(1.12)X
2844(via)X
2966(anonymous)X
3376(ftp.)X
1 f
720 2512(The)N
866(following)X
1198(instructions)X
1592(give)X
1751(the)X
1870(details)X
2100(of)X
2188(how)X
2348(to)X
2432(obtain)X
2 f
2654(Winterp)X
1 f
2934(sources,)X
3217(examples,)X
3562(and)X
3700(documentation)X
720 2608(via)N
838(anonymous)X
1227(ftp)X
1336(on)X
1436(a)X
2 f
1492(Unix)X
1 f
1668(workstation.)X
8 f
720 2752(Note:)N
1008(In)X
1152(the)X
1344(output)X
1680(below,)X
2016(your)X
2256(input)X
2544(is)X
2688(denoted)X
3072(by)X
3216('\303\303\303\303\303\303\303\303\303\303'\))X
720 2944(hplnpm-17-/tmp>)N
1488(ftp)X
1680(export.lcs.mit.edu)X
2640(\(HP-ites,)X
3120(do)X
3264(ftp)X
3456(hplnpm.hpl.hp.com\))X
1488 3040(\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303)N
3264(\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303)X
1104 3136([...])N
720 3232(Name)N
960(\(hplnpm.hpl.hp.com:mayer\):)X
2256(anonymous)X
2256 3328(\303\303\303\303\303\303\303\303\303)N
720 3424(Password)N
1152(\(hplnpm.hpl.hp.com:anonymous\):)X
2640(<anypassword)X
3264(you)X
3456(want)X
3696(here>)X
2640 3520(\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303)N
720 3616(331)N
912(Guest)X
1200(login)X
1488(ok,)X
1680(send)X
1920(ident)X
2208(as)X
2352(password.)X
720 3712(230)N
912(Guest)X
1200(login)X
1488(ok,)X
1680(access)X
2016(restrictions)X
2640(apply.)X
720 3808(ftp>)N
960(cd)X
1104(contrib/winterp)X
1968(\(HPites)X
2352(should)X
2688(do)X
2832(cd)X
2976(pub\))X
960 3904(\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303)N
2832(\303\303\303\303\303\303)X
720 4000(200)N
912(CWD)X
1104(command)X
1488(okay.)X
720 4192(ftp>)N
960(type)X
1200(image)X
960 4288(\303\303\303\303\303\303\303\303\303\303)N
720 4384(200)N
912(Type)X
1152(set)X
1344(to)X
1488(I.)X
720 4576(ftp>)N
960(get)X
1152(winterp-1.12.tar.Z)X
960 4672(\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303)N
720 4768(200)N
912(PORT)X
1152(command)X
1536(okay.)X
720 4864(150)N
912(Opening)X
1296(data)X
1536(connection)X
2064(for)X
2256(winterp-1.12.tar.Z)X
3168(\(15.255.176.225,3988\))X
4224(\(1414493)X
4656(bytes\).)X
720 4960(226)N
912(Transfer)X
1344(complete.)X
720 5056(1414493)N
1104(bytes)X
1392(received)X
1824(in)X
1968(690.63)X
2304(seconds)X
2688(\(1.96)X
2976(Kbytes/sec\))X
720 5248(ftp>)N
960(quit)X
960 5344(\303\303\303\303)N
720 5440(221)N
912(Goodbye.)X
1 f
8 s
10 f
720 5570(hhhhhhhhhhhhhhhhhh)N
6 s
1 f
800 5645(25)N
8 s
880 5664(As)N
967(of)X
1036(this)X
1145(writing,)X
1362(<latestversion>)X
9 f
1773(\263)X
1 f
1824(1.12)X
1952(.)X
10 s
2398 6144(29)N

30 p
%%Page: 30 31
10 s 0 xH 0 xS 1 f
8 f
720 672(hplnpm-18-/tmp>)N
1488(zcat)X
1728(winterp-1.12.tar.Z)X
2640(|)X
2736(tar)X
2928(xvf)X
3120(-)X
1488 768(\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303)N
1104 864([...)N
1344(lengthy)X
1728(list)X
1968(of)X
2112(files)X
2400(from)X
2640(tar)X
2832(...])X
720 1056(hplnpm-19-/tmp>)N
1488(rm)X
1632(winterp-1.12.tar.Z)X
1488 1152(\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303\303)N
864 1344(*)N
960(For)X
1152(compilation)X
1728(tips,)X
2016(take)X
2256(a)X
2352(look)X
2592(at)X
2736(winterp-1.12/doc/COMPILING)X
864 1536(*)N
960(For)X
1152(running)X
1536(hints,)X
1872(take)X
2112(a)X
2208(look)X
2448(at)X
2592(winterp-1.12/doc/RUNNING)X
864 1728(*)N
960(For)X
1152(known)X
1440(\(Motif)X
1776(1.1)X
1968(only\))X
2256(bugs,)X
2544(see)X
2736(winterp-1.12/doc/BUGS)X
864 1920(*)N
960(For)X
1152(information)X
1728(on)X
1872(the)X
2064(examples,)X
2544(look)X
2784(at)X
2928(winterp-1.12/examples/README)X
864 2112(*)N
960(For)X
1152(general)X
1536(information)X
2112(about)X
2400(WINTERP,)X
2832(see)X
3024(winterp-1.12/doc/winterp.doc)X
3 f
720 2352(15.)N
860(References)X
1 f
720 2476([Betz89])N
1023(David)X
1241(Michael)X
1526(Betz.)X
2 f
1735(XLISP:)X
1993(An)X
2104(Object-oriented)X
2634(Lisp)X
2793(\(version)X
3078(2.1\))X
1 f
3205(.)X
3268(Unpublished)X
3700(documentation)X
920 2572(accompanying)N
1412(the)X
1534(public)X
1758(domain)X
2 f
2022(Xlisp)X
1 f
2210(software)X
2511(release.)X
2799(David)X
3019(Michael)X
3306(Betz,)X
3497(P.O.)X
3663(Box)X
3820(144,)X
3984(Peter-)X
920 2668(borough,)N
1231(NH)X
1371(03458,)X
1615(April,)X
1829(1989.)X
2034(Note:)X
2237(this)X
2377(documentation)X
2878(is)X
2956(included)X
3257(in)X
3344(the)X
2 f
3467(Winterp)X
1 f
3750(source)X
3985(distri-)X
920 2764(bution.)N
720 2888([Borenstein88])N
1223(Nathaniel)X
1558(S.)X
1645(Borenstein)X
2015(and)X
2154(Chris)X
2350(A.)X
2451(Thyberg.)X
2786(Cooperative)X
3201(Work)X
3407(in)X
3492(the)X
3613(Andrew)X
3895(Message)X
920 2984(System.)N
1215(In)X
1302(proceedings)X
2 f
1710(Conference)X
2100(on)X
2200(Computer-Supported)X
2896(Cooperative)X
3312(Work)X
1 f
3486(,)X
3526(1988.)X
720 3108([Bourne90])N
1123(Philip)X
1346(E.)X
1448(Bourne)X
1717(and)X
1866(Lawrence)X
2218(S.)X
2316(Shapiro.)X
2639(Developing)X
3047(with)X
3223(DECwindows.)X
2 f
3746(DEC)X
3940(Profes-)X
920 3204(sional)N
1 f
1115(,)X
1155(vol.)X
1297(9,)X
1377(no.)X
1497(2,)X
1577(pp.)X
1697(36-44,)X
1924(February)X
2234(1990.)X
720 3328([Comer86])N
1100(D.)X
1206(Comer)X
1453(and)X
1598(L.)X
1696(Peterson.)X
2041(Conversation-Based)X
2720(Mail.)X
2 f
2940(ACM)X
3138(Transactions)X
3584(on)X
3693(Computer)X
4042(Sys-)X
920 3424(tems)N
1 f
1067(,)X
1107(vol.)X
1249(4,)X
1329(no.)X
1449(4,)X
1529(pp)X
1629(299-319,)X
1936(November)X
2295(1986.)X
720 3548([Conk87])N
1048(Jeff)X
1190(Conklin)X
1468(and)X
1605(Michael)X
1889(Begeman.)X
2253(gIBIS:)X
2487(A)X
2566(Hypertext)X
2908(Tool)X
3080(for)X
3195(Team)X
3399(Design)X
3647(Deliberation.)X
4109(In)X
920 3644(proceedings)N
2 f
1328(Hypertext)X
1665('87)X
1792(Papers)X
1 f
2019(,)X
2059(November)X
2418(1987.)X
720 3768([Creech87a])N
1140(Michael)X
1425(Creech.)X
1716(Lisp-C)X
1961(Evaluation)X
2331(Final)X
2518(Report.)X
2799(Internal)X
3072(Technical)X
3412(Report)X
3653(STL-TM-87-18,)X
920 3864(Hewlett-Packard)N
1480(Laboratories,)X
1926(Software)X
2236(Technology)X
2639(Lab,)X
2804(July)X
2957(9,)X
3037(1987.)X
720 3988([Creech87b])N
1146(Michael)X
1433(Creech,)X
1705(Scott)X
1893(Marovich)X
2229(and)X
2369(Niels)X
2562(Mayer.)X
2836(Lisp-C)X
3082(Evaluation)X
3453(Meeting)X
3745(Notes.)X
3997(Inter-)X
920 4084(nal)N
1039(Technical)X
1377(Report)X
1616(STL-TM-87-17,)X
2159(Hewlett-Packard)X
2719(Laboratories,)X
3165(Software)X
3475(Technology)X
3878(Lab,)X
4043(July)X
920 4180(22,)N
1040(1987.)X
720 4304([Dollimore89])N
1211(Jean)X
1382(Dollimore)X
1739(and)X
1884(Sylvia)X
2117(Wilbur.)X
2413(Experiences)X
2835(in)X
2926(building)X
3221(a)X
3286(con\256gurable)X
3716({CSCW})X
4047(sys-)X
920 4400(tem.)N
1100(In)X
1187(proceedings)X
2 f
1595(1st)X
1708(European)X
2044(Conference)X
2434(on)X
2534(CSCW)X
1 f
2747(,)X
2787(pp)X
2887(215-225,)X
3194(September)X
3557(1989.)X
720 4524([Fikes82])N
1047(R.E.)X
1209(Fikes.)X
1442(A)X
1520(Commitment-Based)X
2184(Framework)X
2574(for)X
2688(Describing)X
3060(Informal)X
3361(Cooperative)X
3773(Work.)X
2 f
4016(Cog-)X
920 4620(nitive)N
1118(Science)X
1 f
1364(,)X
1404(vol.)X
1546(6,)X
1626(no.)X
1746(4,)X
1826(pp.)X
1946(331-347,)X
2253(1982.)X
720 4744([Heimburger])N
1191(Olaf)X
1363(Heimburger.)X
1800(Elche)X
2012(Im)X
2130(Winter)X
2382(\320)X
2491(Interaktive)X
2868(X-Applicationbuilder)X
3588(unter)X
3783(Lisp)X
3955(\320)X
4065(Elk)X
920 4840(und)N
1060(WINTERP.)X
2 f
1456(iX)X
1 f
1527(,)X
1567(July)X
1720(1991,)X
1920(pp)X
2020(64-68.)X
720 4964([Holt81])N
1016(A.W.)X
1210(Holt)X
1372(and)X
1508(P.M.)X
1683(Cashman.)X
2041(Designing)X
2390(Systems)X
2677(to)X
2760(Support)X
3034(Cooperative)X
3447(Activity:)X
3752(An)X
3871(Example.)X
920 5060(In)N
2 f
1020(Proceedings)X
1454(of)X
1549(Compsac)X
1880(81.)X
2013(IEEE)X
2220(Computer)X
2573(Society's)X
2896(Fifth)X
3084(International)X
3539(Computer)X
3892(Software)X
920 5156(And)N
1069(Applications)X
1493(Conference)X
1 f
1863(,)X
1903(pp)X
2003(18-91,)X
2230(November)X
2589(1981.)X
720 5280([Kaplan90])N
1133(Simon)X
1388(Kaplan.)X
1707(COED:)X
1994(A)X
2099(Conversation-oriented)X
2863(tool)X
3034(for)X
3175(coordinated)X
3601(design)X
3857(work.)X
4109(In)X
2 f
920 5376(Proceedings)N
1353(of)X
1447(IFIP)X
1631(International)X
2085(Workshop)X
2442(on)X
2554(Human)X
2821(Factors)X
3101(in)X
3194(Information)X
3607(Systems)X
1 f
3861(,)X
3912(in)X
4005(print,)X
920 5472(June)N
1087(1990.)X
720 5596([Lai88])N
983(Kum-Yew)X
1344(Lai)X
1473(and)X
1611(Tom)X
1784(Malone.)X
2092(Object-Lens:)X
2534(A)X
2615(Spreadsheet)X
3026(for)X
3143(Cooperative)X
3558(Work.)X
3804(In)X
3894(proceed-)X
920 5692(ings)N
2 f
1073(Conference)X
1463(on)X
1563(Computer-Supported)X
2259(Cooperative)X
2675(Work)X
1 f
2849(,)X
2889(September)X
3252(1988.)X
2398 6144(30)N

31 p
%%Page: 31 32
10 s 0 xH 0 xS 1 f
720 672([Malone86])N
1132(Tom)X
1316(Malone,)X
1614(K.)X
1725(Grant,)X
1961(K.)X
2072(Lai,)X
2232(R.)X
2338(Rao,)X
2521(and)X
2671(D.)X
2783(Rosenblitt.)X
3185(Semi-structured)X
3731(Messages)X
4077(are)X
920 768(Surprisingly)N
1379(Useful)X
1657(for)X
1815(Computer-Supported)X
2555(Coordination.)X
3081(In)X
3212(proceedings)X
2 f
3663(Conference)X
4096(on)X
920 864(Computer-Supported)N
1616(Cooperative)X
2032(Work)X
1 f
2206(,)X
2246(pp)X
2346(102-114,)X
2653(December)X
3004(1986.)X
720 988([Mayer90a])N
1131(Niels)X
1332(P.)X
1428(Mayer,)X
1690(Allan)X
1900(W.)X
2028(Shepherd)X
2363(and)X
2511(Allan)X
2721(J.)X
2804(Kuchinsky.)X
3223(Winterp:)X
3540(An)X
3670(object-oriented,)X
920 1084(rapid)N
1114(prototyping,)X
1536(development)X
1979(and)X
2124(delivery)X
2416(environment)X
2850(for)X
2972(building)X
3266(extensible)X
3619(applications)X
4034(with)X
920 1180(the)N
1055(OSF/Motif)X
1442(UI)X
1564(Toolkit.)X
1876(In)X
1980(Proceedings)X
2 f
2409(Xhibition)X
2743('90,)X
2907(X)X
2993(Window)X
3292(System)X
3552(and)X
3710(Open)X
3922(Systems)X
920 1276(Technical)N
1256(Conference)X
1 f
1626(,)X
1666(San)X
1806(Jose,)X
1984(CA,)X
2135(May)X
2302(1990,)X
2502(pp)X
2602(49-64.)X
720 1400([Mayer90b])N
1126(Niels)X
1317(P.)X
1404(Mayer,)X
1657(Allan)X
1858(W.)X
1977(Shepherd)X
2303(and)X
2442(Allan)X
2643(J.)X
2717(Kuchinsky.)X
3127(The)X
3275(WINTERP)X
3654(Widget)X
3913(INTER-)X
920 1496(Preter)N
1136(\320)X
1240(An)X
1362(Application)X
1764(Prototyping)X
2165(and)X
2305(Extension)X
2649(Environment)X
3091(for)X
3209(OSF/Motif.)X
3622(In)X
3712(Proceedings)X
2 f
4127(X)X
920 1592(Into)N
1077(The)X
1226(Future,)X
1493(The)X
1642(European)X
1987(X)X
2065(Users)X
2281(Group)X
2519(Autumn)X
2797(Conference)X
3196(1990)X
1 f
(,)S
3405(Surrey,)X
3668(UK,)X
3833(September)X
920 1688(1990,)N
1120(pp.)X
1240(33-55.)X
720 1812([Mayer91])N
1094(Niels)X
1293(P.)X
1387(Mayer.)X
1667(The)X
1822(WINTERP)X
2208(Widget)X
2474(INTERPreter)X
2932(\320)X
3042(A)X
3130(Lisp)X
3302(Prototyping)X
3709(and)X
3856(Extension)X
920 1908(Environment)N
1359(for)X
1474(OSF/Motif-based)X
2055(Applications)X
2485(and)X
2622 0.2750(User-Interfaces.)AX
2 f
3179(Lisp)X
3336(Pointers)X
1 f
3607(,)X
2 f
3647(ACM)X
3836(SIGPLAN)X
1 f
(,)S
920 2004(Volume)N
1198(IV,)X
1323(Number)X
1606(1,)X
1686(pp)X
1786(45-60.)X
720 2128([Myers89])N
1100(Brad)X
1297(A.)X
1416(Myers.)X
1703(Tools)X
1927(for)X
2063(Creating)X
2381(User)X
2575(Interfaces:)X
2957(An)X
3097(Introduction)X
3535(and)X
3693(Survey.)X
2 f
4002(IEEE)X
920 2224(Software)N
1 f
1204(,)X
1244(vol.)X
1386(6,)X
1466(no.)X
1586(1,)X
1666(pp.)X
1786(15-23,)X
2013(January)X
2283(1989.)X
720 2348([OSF90])N
1029(Open)X
1232(Software)X
1551(Foundation.)X
2 f
1984(OSF/Motif)X
2355(Series)X
1 f
2580(\(5)X
2676(Volumes\):)X
2 f
3063(Motif)X
3265(Style)X
3451(Guide;)X
3704(Programmer's)X
920 2444(Guide;)N
1192(Programmer's)X
1713(Reference;)X
2111(User's)X
2374(Guide;)X
2646(Application)X
3068(Environment)X
3531(Speci\256cation;)X
4020(User)X
920 2540(Environment)N
1354(Volume)X
1 f
1599(.)X
1659(Prentice-Hall,)X
2127(1990.)X
720 2664([Reichman85])N
1199(Rachel)X
1442(Reichman.)X
2 f
1807(Getting)X
2067(Computers)X
2438(to)X
2520(Talk)X
2682(Like)X
2840(You)X
2984(and)X
3124(Me)X
1 f
3227(.)X
3287(The)X
3432(MIT)X
3599(Press,)X
3808(1985.)X
720 2788([Rosenberg88])N
1242(Jarrett)X
1488(Rosenberg)X
1876(\(moderator\),)X
2326(Ralph)X
2563(Hill,)X
2753(Jim)X
2914(Miller,)X
3180(Andrew)X
3485(Schulert,)X
3818(and)X
3980(David)X
920 2884(Shewmake)N
1297(\(panelists\).)X
1696(UIMSs:)X
1973(Threat)X
2207(or)X
2298(Menace?)X
2633(In)X
2 f
2724(Human)X
2984(Factors)X
3257(in)X
3343(Computing)X
3722(Systems)X
1 f
3976(,)X
4020(SIG-)X
920 2980(CHI)N
1078('88,)X
1225(Washington,)X
1652(D.C.,)X
1843(May)X
2010(1988,)X
2210(pp.)X
2330(197-200.)X
720 3104([Rose86])N
1035(M.T.)X
1216(Rose)X
1397(and)X
1535(J.L.)X
1677(Romine.)X
2 f
1992(The)X
2134(Rand)X
2325(MH)X
2472(message)X
2766(handling)X
3072(system:)X
3355(User's)X
3591(manual,)X
3873(UCI)X
4033(Ver-)X
920 3200(sion)N
1073(6.5)X
1 f
(.)S
1233(University)X
1591(of)X
1678(California,)X
2043(December)X
2394(1986.)X
720 3324([Schulert88])N
1169(Andrew)X
1476(Schulert)X
1791(and)X
1955(Kate)X
2155(Erf.)X
2346(Open)X
2568(Dialogue:)X
2933(Using)X
3173(an)X
3298(extensible)X
3672(retained)X
3980(object)X
920 3420(workspace)N
1284(to)X
1366(support)X
1626(a)X
1682(UIMS.)X
1922(In)X
2009(proceedings)X
2 f
2417(USENIX)X
2713(C++)X
2894(Workshop)X
1 f
3219(,)X
3259(Denver,)X
3536(Colorado,)X
3874(1988.)X
720 3544([SEI89])N
997(Software)X
1310(Engineering)X
1725(Institute.)X
2 f
2050(Serpent)X
2318(Overview)X
1 f
2626(.)X
2689(Technical)X
3030(Report)X
3272(CMU/SEI-89-UG-2,)X
3957(Carne-)X
920 3640(gie)N
1038(Mellon)X
1289(University,)X
1667(Software)X
1977(Engineering)X
2389(Institute,)X
2691(August)X
2942(1989.)X
720 3764([Searle76])N
1078(John)X
1252(R.)X
1348(Searle.)X
1612(A)X
1693(Taxonomy)X
2063(of)X
2154(Illocutionary)X
2592(Acts.)X
2803(In)X
2894(K.)X
3016(Gunderson,)X
3412(editor,)X
2 f
3643(Language,)X
4007(Mind)X
920 3860(and)N
1060(Knowledge)X
1 f
1440(University)X
1798(of)X
1885(Minnesota)X
2243(Press,)X
2452(1976.)X
720 3984([Shepherd90])N
1195(Allan)X
1411(Shepherd,)X
1772(Niels)X
1979(Mayer,)X
2247(and)X
2401(Allan)X
2617(Kuchinsky.)X
3042(Strudel:)X
3333(An)X
3469(Extensible)X
3846(Electronic)X
920 4080(Conversation)N
1377(Toolkit.)X
1682(In)X
1778(proceedings)X
2 f
2195(Conference)X
2594(on)X
2703(Computer-Supported)X
3408(Cooperative)X
3833(Work)X
1 f
4007(,)X
4056(Los)X
920 4176(Angeles,)N
1223(October)X
1502(1990,)X
1702(pp.)X
1822(93-104.)X
720 4300([Stallman87])N
1165(Richard)X
1446(M.)X
1564(Stallman.)X
2 f
1915(GNU)X
2111(Emacs)X
2352(Manual)X
1 f
2601(.)X
2668(Free)X
2838(Software)X
3155(Foundation,)X
3566(675)X
3713(Massachusetts)X
920 4396(Ave.,)N
1114(Cambridge,)X
1510(MA)X
1659(02139,)X
1899(1987.)X
720 4520([Sulonen90])N
1139(Reijo)X
1335(Sulonen)X
1620(and)X
1759(Panu)X
1943(Pietikainen.)X
2367(Forget-Me-Not)X
2881(\320)X
2985(Controlling)X
3377(intercompany)X
3842(operations)X
920 4616(by)N
1028(intelligent)X
1380(mail.)X
1590(In)X
2 f
1685(Proceedings)X
2114(23rd)X
2293(Annual)X
2552(Hawaii)X
2815(International)X
3265(Conference)X
3663(on)X
3770(Systems)X
4051(Sci-)X
920 4712(ences)N
1 f
1099(,)X
1139(pp.)X
1279(428-435,)X
1586(1990.)X
720 4836([Trigg86])N
1053(Randall)X
1323(Trigg,)X
1542(Lucy)X
1728(A.)X
1827(Suchman,)X
2166(and)X
2303(Frank)X
2511(G.)X
2610(Halasz.)X
2890(Supporting)X
3267(Collaboration)X
3729(in)X
3813(NoteCards.)X
920 4932(In)N
2 f
1007(Conference)X
1397(on)X
1497(Computer-Supported)X
2193(Cooperative)X
2609(Work)X
1 f
2783(,)X
2823(December)X
3174(1986.)X
720 5056([Winograd86])N
1212(Terry)X
1428(Winograd)X
1786(and)X
1939(Fernando)X
2279(Flores.)X
2 f
2556(Understanding)X
3073(computers)X
3444(and)X
3601(cognition,)X
3960(A)X
4047(new)X
920 5152(foundation)N
1286(for)X
1399(design)X
1 f
1608(.)X
1668(Ablex,)X
1904(Norwood)X
2227(New)X
2399(Jersey,)X
2640(1986.)X
720 5276([Winograd87])N
1206(Terry)X
1416(Winograd.)X
1808(A)X
1897(Language/Action)X
2485(Perspective)X
2886(On)X
3016(The)X
3173(Design)X
3432(Of)X
3549(Cooperative)X
3973(Work.)X
920 5372(Technical)N
1257(Report)X
1495(CSLI-87-98,)X
1922(Stanford)X
2218(University,)X
2596(1987.)X
720 5496([Young90])N
1092(Douglas)X
1379(A.)X
1477(Young.)X
2 f
1755(The)X
1895(X)X
1964(Window)X
2246(System:)X
2516(Programming)X
2985(and)X
3125(Applications)X
3550(With)X
3722(Xt,)X
3834(OSF/Motif)X
920 5592(Edition)N
1 f
1155(.)X
1215(Prentice)X
1498(Hall,)X
1676(1990.)X
2398 6144(31)N

32 p
%%Trailer
xt

xs
